Computer graphics system and computer-implemented method for generating smooth feature lines for subdivision surfaces

ABSTRACT

An arrangement is described for generating a representation of a feature in a surface defined by a mesh representation, the mesh comprising at a selected level a plurality of points including at least one point connected to a plurality of neighboring points by respective edges, the feature being defined in connection with the vertex and at least one of the neighboring points and the edge interconnecting the vertex and the at least one of the neighboring points in the mesh representation. The feature generating arrangement comprises a weight vector generator module and a feature representation generator module. The weight vector generator module is configured to generate at least one weight vector based on a parameterized subdivision rule defined at a plurality of levels, for which a value of at least one parameter differs at at least two levels in the mesh. The feature representation generator module configured to use the at least one weight vector and positions of the vertex and the neighboring points to generate the representation of the feature. One embodiment of the arrangement generates a smooth feature line in the subdivision surface.

FIELD OF THE INVENTION

[0001] The invention relates generally to the field of computer graphics, and more specifically to generation of smooth feature lines on subdivision surfaces representing surfaces of objects.

BACKGROUND OF THE INVENTION

[0002] Generally, in computer graphics, objects are represented as surfaces, with the surfaces being represented by meshes at a particular level. A mesh at a particular consists of a set of vertices, or points in three-dimensional space, which are interconnected by edges. The edges define polygonal faces, which may be in the form of triangles, quadrilaterals, and so forth. In some computer graphic operations, it is desirable to generate a representation of a surface at a finer resolution than a current representation. There are several popular methodologies for generating a representation of a surface at a finer resolution than a current representation, including a Catmull-Clark surface subdivision methodology, which is used in connection with surfaces defined by a quadrilateral mesh, and a Loop surface subdivision methodology, which is used in connection with surface defined by a triangular mesh. Generally, both methodologies make use of respective subdivision rules at respective vertices defining the surface at a particular level in the mesh to generate a mesh in a next higher subdivision level. The surface of the respective object, which is referred to as the “subdivision surface” or “limit surface,” is taken as being defined by a mesh as the subdivision level approaches infinity.

[0003] A feature on a subdivision surface can be defined by a feature line in the mesh that defines the respective surface. A feature line can be in the form of a sharp crease or a smooth curve. For a smooth feature line, a normal vector, which is the vector that is perpendicular to a plane that is tangent to the surface, will vary continuously across the smooth feature line. On the other hand, for a sharp crease, the normal vector varies discontinuously across the crease, and in fact is not defined at the crease. However, a definition for a smooth curve can be derived from a definition for a sharp crease using one or more parameters that are used to define the sharpness of the curve across vertices in the mesh at a particular subdivision level. D. Zorin, “Stationary Subdivision And Multi-Resolution Surface Representation,” Ph.D. Thesis, California Institute of Technology, Pasadena, Calif., 1998, describes a methodology for generating a smooth feature line using parameters, but the methodology described there results in surfaces of relatively low quality, even in surfaces that are not smooth at some vertices in the surface topology. T. DeRose, et al., “Subdivision surfaces in character animation,” SIGGRAPH 98 Conference Proceedings, Annual Conference Series, pages 85-94, ACM SIGGRAPH, 1998, describes a methodology for generating a smooth feature line based on applying a subdivision rule corresponding to sharp creases, as described in H. Hoppe, et al., “Piecewise Smooth Surface reconstruction,” SIGGRAPH 94 Conference Proceedings, Annual Conference Series, ACM SIGGRAPH, 1994, up to a selected fineness level, and a rule corresponding to smooth interior points thereafter. Applying the two distinctly different types of rules makes efficient evaluation of the resulting surface difficult.

SUMMARY OF THE INVENTION

[0004] The invention provides a new and improved system and method for generating a smooth feature line in a subdivision surface.

[0005] In brief summary, the invention provides an arrangement for generating a representation of a feature in a surface defined by a mesh representation, the mesh comprising at a selected level a plurality of points including at least one point connected to a plurality of neighboring points by respective edges, the feature being defined in connection with the vertex and at least one of the neighboring points and the edge interconnecting the vertex and the at least one of the neighboring points in the mesh representation. The feature generating arrangement comprises a weight vector generator module and a feature representation generator module. The weight vector generator module is configured to generate at least one weight vector based on a parameterized subdivision rule defined at a plurality of levels, for which a value of at least one parameter differs at at least two levels in the mesh. The feature representation generator module configured to use the at least one weight vector and positions of the vertex and the neighboring points to generate the representation of the feature.

[0006] One embodiment of the invention comprises an arrangement for generating a smooth feature line in the subdivision surface.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007] This invention is pointed out with particularity in the appended claims. The above and further advantages of this invention may be better understood by referring to the following description taken in conjunction with the accompanying drawings, in which:

[0008]FIG. 1 depicts a computer graphics system including an arrangement for generating a smooth feature line in a subdivision surface, constructed in accordance with the invention;

[0009]FIG. 2 depicts a mesh representing a surface to which the Loop surface subdivision methodology has been applied;

[0010]FIG. 3 depicts a stencil useful in understanding the Loop surface subdivision methodology;

[0011]FIGS. 4A through 4E depict a mesh representing a surface to which the Catmull-Clark surface subdivision methodology has been applied;

[0012]FIG. 5 depicts a stencil useful in understanding the Catmull-Clark surface subdivision methodology;

[0013]FIG. 6 depicts a stencil useful in understanding a methodology for generating a sharp crease on a subdivision surface;

[0014]FIG. 7 depicts a stencil useful in understanding a methodology for generating a smooth feature line used in connection with subdivision surfaces defined by triangular meshes;

[0015]FIGS. 8 and 9 depict tables of coefficients used in the methodology used in connection with surfaces defined by triangular meshes described in connection with FIG. 7;

[0016]FIG. 10 depicts a flow chart describing operations performed by the computer graphics system in connection with the methodology used in connection with surfaces defined by triangular meshes described in connection with FIG. 7;

[0017]FIG. 11 depicts a stencil useful in understanding a methodology for generating a smooth feature line used in connection with subdivision surfaces defined by quadrilateral meshes;

[0018]FIGS. 12 and 13 depict tables of coefficients used in the methodology used in connection with surfaces defined by quadrilateral meshes described in connection with FIG. 11.

DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT

[0019]FIG. 1 depicts a computer graphics system 10 including an arrangement for generating a smooth feature line in connection with a subdivision surface, constructed in accordance with the invention. With reference to FIG. 1, the computer graphics system includes a processor module 11, one or more operator input devices 12 and one or more display devices 13. The display device(s) 13 will typically comprise a frame buffer, video display terminal or the like, which will display information in textual and/or graphical form on a display screen to the operator. The operator input devices 12 for a computer graphics system 10 will typically include a pen 14 which is typically used in conjunction with a digitizing tablet 15, and a trackball or mouse device 16. Generally, the pen 14 and digitizing tablet will be used by the operator in several modes. In one mode, the pen 14 and digitizing tablet are used to provide updated shading information to the computer graphics system. In other modes, the pen and digitizing tablet are used by the operator to input conventional computer graphics information, such as line drawing for, for example, surface trimming and other information, to the computer graphics system 10, thereby to enable the system 10 to perform conventional computer graphics operations. The trackball or mouse device 16 can be used to move a cursor or pointer over the screen to particular points in the image at which the operator can provide input with the pen and digitizing tablet. The computer graphics system 10 may also include a keyboard (not shown) which the operator can use to provide textual input to the system 10.

[0020] The processor module 11 generally includes a processor, which may be in the form of one or more microprocessors, a main memory, and will generally include one a mass storage subsystem including one or more disk storage devices. The memory and disk storage devices will generally store data and programs (collectively, “information”) to be processed by the processor, and will store processed data which has been generated by the processor. The processor module includes connections to the operator input device(s) 12 and the display device(s) 13, and will receive information input by the operator through the operator input device(s) 12, process the input information, store the processed information in the memory and/or mass storage subsystem. In addition, the processor module can provide video display information, which can form part of the information obtained from the memory and disk storage device as well as processed data generated thereby, to the display device(s) for display to the operator. The processor module 11 may also include connections (not shown) to hardcopy output devices such as printers for facilitating the generation of hardcopy output, modems and/or network interfaces (also not shown) for connecting the system 10 to the public telephony system and/or in a computer network for facilitating the transfer of information, and the like.

[0021] The invention provides an arrangement for generating a smooth feature line in a three-dimensional subdivision surface. The subdivision surface, in turn, is defined by control points that are interconnected by edges to form a three-dimensional mesh. Generally, a subdivision surface is initially defined by a mesh at a particular degree of granularity or fineness. Using one of several methodologies, the mesh can be refined through a series of levels of increasing subdivision levels, with the subdivision surface being the limit as the subdivision level approaches infinity. In the following, the each mesh level will be identified an index, with one mesh level being identified by index “j” and the next higher subdivision level mesh being identified by index “j+1.” The subdivision surface is essentially defined by the positions of the surface's “limit points,” which are the essentially the control points as the subdivision level approaches infinity, and the orientations of the associated normal vectors. Each normal vector defines the orientation of a tangent plane at the respective point on the subdivision surface and, in turn, can be defined by the cross product of vectors that are tangent to the subdivision surface at the respective point.

[0022] Before describing the operations performed by the smooth feature line generating arrangement, it would be helpful to describe two surface subdivision methodologies, namely the aforementioned Loop surface subdivision methodology and a Catmull-Clark surface subdivision methodology, with which the arrangement is used..

[0023] Loop's surface subdivision methodology will be described in connection with FIGS. 2 and 3. FIG. 2 depicts a portion of an illustrative surface defined by a mesh, and a subdivision surface derived therefrom, and FIG. 3 depicts a stencil useful in understanding the surface subdivision methodology. Generally, in Loop's surface subdivision methodology, each triangular face in the original mesh is split into a plurality of subfaces, the subfaces defining the next higher subdivision level mesh. The vertices of the next higher subdivision level mesh are positioned using weighted averages of the positions of the vertices in the original mesh. More specifically, and with reference to FIG. 2, a mesh 20 at a “j” subdivision level is depicted that includes a vertex v_(q) (vertex v_(q)=v_(q)(0)) 21(0) located at position c^(j)(q), and a plurality “K” of surrounding points v_(q)(1) through v_(q)(K) (generally, v_(q)(k)) 21(1) through 21(K) (generally identified by reference numeral 21(k)) located at positions at respective positions c^(j)(1) through c^(j)(K), the points v_(q)(k) 21(k) being those points in the mesh 20 that are connected to vertex v_(q) by edges. (“K,” the number of points connected to vertex v_(q) will sometimes be referred to as the vertex's “valence.”) The stencil depicted in FIG. 3 is useful in understanding the ordering of the index “k” for the points surrounding the respective vertex v_(q). Denoting the set of the indices of the points v_(q)(k) in the mesh that are connected to vertex v_(q) by N(q,j), a mesh at the next higher subdivision level “j+1” corresponds to vertex v′_(q) 22(0) located at position c^(j+1)(q) and a set of surrounding points v′_(q)(1) 22(1) at located at positions c^(j+1)(1) and connected to the vertex v′_(q) 22(0). The higher subdivision level mesh is constructed by providing the vertex v′_(q) 22(0) at a position c^(j+1)(q) that is determined by $\begin{matrix} {{c^{j + 1}(q)} = {{\left( {1 - {a(K)}} \right){c^{j}(q)}} + {\frac{a(K)}{K}{\sum\limits_{k \in {N{({q,j})}}}{c^{j}(k)}}}}} & (1) \end{matrix}$

[0024] and points v′_(q)(1) 22(1) at positions c^(j+1)(1) that are determined by $\begin{matrix} {{{c^{j + 1}(l)} = {{\frac{3}{8}\left\lbrack {{c^{j}(q)} + {c^{j}(k)}} \right\rbrack} + {\frac{1}{8}\left\lbrack {{c^{j}\left( {k - 1} \right)} + {c^{j}\left( {k + 1} \right)}} \right\rbrack}}},{k = 1},\ldots \quad,K,} & (2) \end{matrix}$

[0025] where the weighting factor a(K) is given by $\begin{matrix} {{a(K)} = {\frac{5}{8} - {\left( \frac{3 + {2{\cos \left( \frac{2\pi}{K} \right)}}}{8} \right)^{2}.}}} & (3) \end{matrix}$

[0026] Equations (1) and (2) can be summarized in a single equation defining a subdivision rule using a subdivision matrix S_(T,K) (where index “T” refers to “Triangular”) as follows

c ^(j+1) =S _(T,K) c ^(j)   (4)

[0027] which may be written component-wise as $\begin{matrix} {{\left( c^{j + 1} \right)_{l} = {\sum\limits_{m}{\left( S_{T,K} \right)_{l,m}\left( c^{j} \right)_{m}}}},} & (5) \end{matrix}$

[0028] where $\begin{matrix} {\left( S_{T,K} \right)_{l,m} = \left\{ {\begin{matrix} {\quad {1 - {a(K)}}} & {\quad {{{{if}\quad l} = 0},{m = 0}}} \\ {\quad \frac{a(K)}{2}} & {\quad {{{{if}\quad l} = 0},{m = 1},\ldots \quad,K}} \\ {\quad \frac{3}{8}} & {\quad {{{{if}\quad l} = 1},\ldots \quad,K,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {m = 1}},\ldots \quad,K}} \\ {\quad \frac{1}{8}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,K,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 1},{m = K}}} \\ \quad & {\quad {{{{or}\quad l} = 1},\ldots \quad,K,{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = K},{m = 1}}} \\ {\quad 0} & {\quad {otherwise}} \end{matrix},} \right.} & (6) \end{matrix}$

[0029] where indices “l” and “m” range from “zero” to, and including, “K.”

[0030] Equations (1) and (2), or equivalently equations (4) through (6), are applied by selecting each point in the mesh at subdivision level “j” as a vertex, to provide points for the mesh at the subdivision level “j+1.” Loop's surface subdivision methodology can be applied recursively to provide a mesh at any desired subdivision level. It will be appreciated that equation (2) will provide that the point v′_(q)(1) 22(1) that is created when the methodology is applied to point v_(q) 21(0) as the vertex will be in the same position when the methodology is applied to point v_(q)(k) 21(k) as the vertex.

[0031] It will be appreciated that, the Loop surface subdivision methodology provides

[0032] (i) one new point (reference points v′_(q)(1) described above), at location c^(j+1)(1) in the next higher (“j+1”) subdivision level mesh, for, and generally somewhere between, each pair of points in the level “j” mesh, and

[0033] (ii) a relocated point (reference vertex v′_(q) described above), at location c^(j+1)(q) in the “j+1” level mesh for, and generally somewhat near, each point in the “j” level mesh, which are interconnected to form the “j+1” level mesh.

[0034] The Catmull-Clark subdivision methodology produces smooth surfaces using a small number of neighboring vertices. The Catmull-Clark surface subdivision methodology will be described in connection with FIGS. 4A through 4E and 5. FIG. 4A depicts an illustrative surface defined by a mesh, and FIGS. 4B through 4E are useful in understanding operations performed in generating a subdivision surface derived from the surface depicted in FIG. 4A. FIG. 5 depicts a stencil useful in understanding the surface subdivision methodology, and in particular is useful in understanding the ordering of the index “k” for the points surrounding the vertex v_(q) (vertex v_(q)=v_(q)(0)) around which the surface subdivision methodology is to be performed. With reference to FIG. 4A, that FIG. depicts a mesh 30 consisting of four quadrilaterals 31(1) through 31(4). Each quadrilateral is referred to as a face. The quadrilaterals are defined by points 32(0), which is common to all of the quadrilaterals 31(1) through 31(4), and other points 32(1) through 32(8). Generally, the Catmull-Clark surface subdivision methodology is performed in a series of iterations, including

[0035] (i) a face point generation iteration, in which, for each face, a face point 33(1) through 33(4) is generated as the average of the points 32(p) defining the respective face (reference FIG. 4B);

[0036] (ii) an edge point generation iteration in which, for each edge, a new edge point 34(1) through 34(4) is generated as the average of the midpoint of the original edge with the two new face points of the faces adjacent to the edge (reference FIG. 4C; the face points generated during the face point generation iteration are shown as circles);

[0037] (iii) a vertex point iteration in which a vertex point 35 is generated in relation to the positions of the new face points generated in iteration (i) for faces that are adjacent to the original vertex point, the positions of the midpoints of the original edges that are incident on the original vertex point, the position of the original vertex point, and the valence of the original vertex point (reference FIG. 4D; the face and edge points generated during the face point and edge point generation iterations are shown as circles); and

[0038] (iv) a mesh connection step (reference FIG. 4E) in which:

[0039] (a) each new face point is connected to the edge points of the edges defining the original face; and

[0040] (b) each new vertex point is connected to the new edge points of all original edges incident on the original vertex point.

[0041] More specifically, in the Catmull-Clark subdivision methodology, denoting, for a vertex v_(q) at location c^(j)(q),

[0042] (i) the set of indices of first-order neighboring points c^(j)(1) that are connected thereto (for example, for point 32(0), point 32(2) and 32(8)) by N_(e)(q,j), and

[0043] (ii) the set of indices of second-order neighboring points that are opposite to vertex c^(j)(q) with respect to the level “j” faces (for example, for point 32(0), point 32(1)) that are incident with vertex c^(j)(q) by N_(f)(q,j)

[0044] a mesh at the next higher subdivision level “j+1” is constructed as follows. In the face point generation iteration, the face points are generated and located at positions c^(j+1)(m_(i)) determined as follows $\begin{matrix} {{{c^{j + 1}\left( m_{i} \right)} = {\frac{1}{4}\left( {{c^{j}(q)} + {c^{j}\left( l_{i} \right)} + {c^{j}\left( l_{i + 1} \right)} + {c^{j}\left( r_{i} \right)}} \right)}},{m_{i} \in {N_{f}\left( {q,{j + 1}} \right)}},l_{1},{l_{i + 1} \in {N_{e}\left( {q,j} \right)}},{r_{i} \in {{N_{f}\left( {q,j} \right)}.}}} & (7) \end{matrix}$

[0045] In the edge point generation iteration, the edge points are generated and located at positions c^(j+1)(1 _(i)) determined as follows: $\begin{matrix} {{{c^{j + 1}\left( l_{i} \right)} = {\frac{1}{4}\left( {{c^{j}(q)} + {c^{j}\left( k_{i} \right)} + {c^{j + 1}\left( m_{i - 1} \right)} + {c^{j + 1}\left( m_{i} \right)}} \right)}},{l_{i} \in {N_{e}\left( {q,{j + 1}} \right)}},{k_{i} \in {N_{e}\left( {q,j} \right)}},m_{i - 1},{m_{i} \in {N_{f}\left( {q,{j + 1}} \right)}}} & (8) \end{matrix}$

[0046] In the vertex point generation iteration, the new vertex points are generated and located at positions as follows: $\begin{matrix} {{{c^{j + 1}(q)} = {{\frac{K - 2}{K}{c^{j}(q)}} + {\frac{1}{K^{2}}{\sum\limits_{i = 0}^{k - 1}{c^{j}\left( l_{i} \right)}}} + {\frac{1}{K^{2}}{\sum\limits_{i = 0}^{k - 1}{c^{j + 1}\left( m_{i} \right)}}}}}{{l_{i} = {\in {N_{e}\left( {{j + 1},q} \right)}}},{m_{i} \in {{N_{f}\left( {{j + 1},q} \right)}.}}}} & (9) \end{matrix}$

[0047] In terms of only points c^(j), that is substituting for the last term in equation (9), $\begin{matrix} {{c^{j + 1}(q)} = {{\left( {1 - \frac{7}{4K}} \right){c^{j}(q)}} + {\frac{3}{2}\frac{1}{K^{2}}{\sum\limits_{l \in {N_{e}{({q,j})}}}{c^{j}(l)}}} + {\frac{1}{4K^{2}}{\sum\limits_{m \in {N_{f}{({q,j})}}}{{c^{j}(m)}.}}}}} & (10) \end{matrix}$

[0048] Generally, for quadrilateral meshes, the arrangement makes use of the Catmull-Clark methodology, except for the case of K=3 in equation (9). In that case, the arrangement makes use of $\begin{matrix} {{{c^{j + 1}(q)} = {{\left( {1 - {8\gamma}} \right){c^{j}(q)}} + {4\gamma \frac{1}{K}{\sum\limits_{l \in {N_{e}{({q,j})}}}{c^{j}(l)}}} + {4\gamma \frac{1}{K}{\sum\limits_{m \in {N_{f}{({q,{j + 1}})}}}{c^{j + 1}(m)}}}}},} & (11) \end{matrix}$

[0049] where $\gamma = {\frac{3}{38}.}$

[0050] Equation (11) would correspond to the Catmull-Clark methodology (equation (9)) with ${\gamma = \frac{1}{4K}},$

[0051] except that, for ${K = 3},{\gamma = \frac{3}{38}}$

[0052] instead of $\frac{1}{12}.$

[0053] . In terms of only points c^(j) (compare equation (10)) $\begin{matrix} {{c^{j + 1}(q)} = {{\left( {1 - {7\gamma}} \right){c^{j}(q)}} + {6\gamma \frac{1}{K}{\sum\limits_{l \in {N_{e}{({q,j})}}}{c^{j}(l)}}} + {\gamma \frac{1}{K}{\sum\limits_{m \in {N_{f}{({q,j})}}}{{c^{j}(m)}.}}}}} & (12) \end{matrix}$

[0054] These equations can be summarized by a single equation defining a subdivision rule using the subdivision matrix S_(Q,K) (where index “Q” refers to “Quadrilateral”) as follows:

c ^(j+1) =S _(Q,K) c ^(j)   (13)

[0055] which may be written component-wise as $\begin{matrix} {{\left( c^{j + 1} \right)_{l} = {\sum\limits_{m}{\left( S_{Q,K} \right)_{l,m}\left( c^{j} \right)_{m}}}},} & (14) \end{matrix}$

[0056] where $\begin{matrix} {\left( S_{Q,K} \right)_{l,m} = \left\{ {\begin{matrix} {\quad {1 - \frac{7}{4K}}} & {\quad {{{{if}\quad l} = 0},{m = 0}}} \\ {\quad {\frac{3}{2}\frac{1}{K^{2}}}} & {\quad {{{{if}\quad l} = 0},{m = 1},\ldots \quad,K}} \\ {\quad \frac{1}{K^{2}}} & {\quad {{{{if}\quad l} = 0},{m = {K + 1}},\ldots \quad,{2K}}} \\ {\quad \frac{3}{8}} & {\quad {{{{if}\quad l} = 1},\ldots \quad,K,{m = {0\quad {or}\quad l}}}} \\ {\quad \frac{1}{16}} & {\quad {{{{if}\quad l} = 1},{m = K}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,K,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 1},\ldots \quad,{K - 1},{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = K},{m = 1}}} \\ \quad & {\quad {{{{or}\quad l} = 1},{m = {2K}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,K,{m = {K + l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 1},\ldots \quad,K,{m = {K + 1}}}} \\ {\quad \frac{1}{4}} & {\quad {{{{if}\quad l} = {K + 1}},\ldots \quad,{2K},{m = 0},{l - K},{l - K + 1},{{or}\quad l}}} \\ \quad & {\quad {{{{or}\quad l} = {2K}},{m = 0},K,{1\quad {or}\quad 2K}}} \\ {\quad 0} & {\quad {otherwise}} \end{matrix},} \right.} & (15) \end{matrix}$

[0057] where indices “l” and “m” range from “zero” to, and including, “2K.”

[0058] As is apparent from the above discussion, the Catmull-Clark surface subdivision methodology applied to a quadrilateral mesh at one “j-th” subdivision level will produce a quadrilateral mesh at the next higher “j+1-st” subdivision level having the same number of points as the mesh at the “j-th” subdivision level, but the points in the higher (“j+1”) subdivision level may be at different positions than in the “j-th” level. Equations (7) through (12), or equivalently equations (13) through (15), are applied by selecting each point in the mesh at subdivision level “j” as a vertex, to provide points for the mesh at subdivision level “j+1.” The Catmull-Clark surface subdivision methodology can be applied recursively to provide a mesh at any desired subdivision level.

[0059] Sharp creases in a subdivision surface maybe generated by local modifications of the surface subdivision equations described above (equations (6) through (8) in the case of a triangular mesh, equations (13) through (15) in the case of a quadrilateral mesh). This will be illustrated in connection with FIG. 6, which depicts a stencil that is useful in understanding the ordering of the index “k” for the points on opposing sides of a respective vertex v_(q) (vertex v_(q)=v_(q)(0)) through which a crease is to occur. By marking the edges of the mesh at which a crease is to occur, chains of edges can be defined that will define the position of a crease on a subdivision surface. As in the cases of both triangular and quadrilateral meshes, the positions c^(j+1) of vertices and points in the higher “j+1-st” subdivision level can be determined from positions of vertices and points c^(j) in the “j-th” level using a defining a subdivision rule comprising a subdivision matrix S_(c) (where index “C” refers to “crease”) as follows:

c ^(j+1) =S _(c) c ^(j)   (16)

[0060] which may be written component-wise as $\begin{matrix} {{\left( c^{j + 1} \right)_{l} = {\sum\limits_{m}{\left( S_{C} \right)_{l,m}\left( c^{j} \right)_{m}}}},{where}} & (17) \\ {\left( S_{C} \right)_{l,m} = \left\{ {\begin{matrix} \frac{3}{4} & {\quad {{{{if}\quad l} = 0},{m = 0}}} \\ \frac{1}{8} & {\quad {{{{if}\quad l} = 0},{m = {1\quad {or}\quad 2}}}} \\ \frac{1}{2} & {\quad {{{{if}\quad l} = {1\quad {or}\quad 2}},{m = {0\quad {or}\quad l}}}} \\ 0 & {\quad {otherwise}} \end{matrix},} \right.} & (18) \end{matrix}$

[0061] where indices “l” and “m” range from “zero” to, and including, “two.” This subdivision rule can be used for creases in the cases subdivision surfaces defined by both triangular meshes and quadrilateral meshes.

[0062] The invention provides a system and method for generating smooth feature lines in subdivision surfaces. As with a sharp crease, a smooth feature line is defined by marking a series of edges at a given subdivision level, which edges are to define the feature line. The lowest subdivision level at which the edges that are associated with a smooth feature line are marked will be referred to as the definition level “j_(D)” for the smooth feature line In addition, a sharpness parameter will be associated with each marked edge in the definition level j_(D) for the smooth feature line. In one embodiment, the value of the sharpness parameter is in the form of a real number in the interval [0,1], that is, in the interval between “zero” and “one,” inclusive of the endpoints. If an edge has a sharpness parameter with the value “zero,” there is no crease along the edge. On the other hand, if an edge has a sharpness parameter with the value “one,” the edge forms part of a sharp crease as described above.

[0063] Generally, a smooth feature is obtained by using a subdivision rule that generalizes the subdivision rules described above (reference equations (4) through (6) in the case of a triangular mesh and equations (13) through (15) in the case of a quadrilateral mesh). The subdivision rule makes use of two parameters s₁ and s₂ which are the respective values of the sharpness parameter on two sides of a vertex across which a smooth feature line is to be generated. A subdivision surface's limit surface, that is, the surface defined by the subdivision surface's limit points, is smooth in the neighborhood of a smooth feature line. That is, for each point on the limit surface that is associated with a smooth feature line, that is, for each point for which the values of the sharpness parameters on respective sides of the point are other than “one,” the orientation of the vector that is normal to the limit surface will vary continuously. However, for the limit surface at a point for which the sharpness parameter have the value is “one,” which will be the case at a sharp crease, the normal vector will not be defined, since the orientation of the normal vector on respective sides of the point will differ.

[0064] Operations performed by the computer graphics system 10 in connection with generating a smooth feature line will be described in connection with FIGS. 7 through 10, in the case of a subdivision surface defined by a triangular mesh, and in connection with FIGS. 11 through 14, in the case of a subdivision surface defined by a quadrilateral mesh. In both cases, the smooth feature line will be defined by the positions of limit points, as well as the normal vectors at the respective limit point, in a region of a subdivision surface that is proximate the line corresponding to the edges that have been marked. As noted above, the normal vectors correspond to the cross product of two tangent vectors at the respective limit point, namely, a tangent vector along the smooth feature line at the respective limit point and a tangent vector across the smooth feature line at the respective limit point.

[0065] With reference to FIG. 7, that FIG. depicts a portion of a subdivision surface defined by a triangular mesh with vertex v_(q) (vertex v_(q)=v_(q)(0)) and points v_(q)(1) through v_(q)(K) with indices numbered as depicted in the FIG. The vertices are labeled such that a crease, which is to define part of a smooth feature line, passes through point v_(q)(1), vertex v_(q) and point v_(q)(L+1) along edges v_(q)(1),v_(q) (which will be referred to as edge (1,0)) and v_(q),v_(q)(L+1) (which will be referred to as edge (0,L+1)). The value of the sharpness parameter associated with the edge (1,0) will be referred to as s₁ and the value of the sharpness parameter associated with the edge (0,L+1) will be referred to as s₂. Since edges (1,0) and (0,L+1) have been indicated as being edges that define a crease, the value of the sharpness parameter will be non-zero. The values of the sharpness parameters associated with the other edges that are on the vertex v_(q) may be “zero,” or non-zero. Generally the subdivision rule described in equation (4) (or, equivalently, equation (5)) can be used to determine the positions of respective vertices, using the subdivision matrix $\begin{matrix} {\left( {S_{{sc},T,K,L}\left( {s_{1},s_{2}} \right)} \right)_{l,m} = \left\{ {\begin{matrix} {\quad {{\left( {1 - s_{3}} \right)\left( {1 - {a(K)}} \right)} + {\frac{3}{4}s_{3}}}} & {\quad {{{{if}\quad l} = 0},{m = 0}}} \\ {\quad {{\left( {1 - s_{3}} \right)\frac{a(K)}{K}} + {\frac{1}{8}s_{3}}}} & {\quad {{{{if}\quad l} = 0},{m = {{1\quad {or}\quad L} + 1}}}} \\ {\quad {\left( {1 - s_{3}} \right)\frac{a(K)}{K}}} & {\quad {{{{if}\quad l} = 0},{m = 2},\ldots \quad,L}} \\ \quad & {\quad {{{{or}\quad l} = 0},{m = {L + 2}},\ldots \quad,K}} \\ {\quad {\frac{3}{8} + {\frac{1}{8}s_{2}}}} & {\quad {{{{if}\quad l} = 1},{m = {0\quad {or}\quad 1}}}} \\ {\quad {\frac{3}{8} + {\frac{1}{8}s_{1}}}} & {\quad {{{{if}\quad l} = {L + 1}},{m = {{0\quad {or}\quad L} + 1}}}} \\ {\quad {\frac{1}{8}\left( {1 - s_{2}} \right)}} & {\quad {{{{if}\quad l} = 1},{m = {2\quad {or}\quad K}}}} \\ {\quad {\frac{1}{8}\left( {1 - s_{1}} \right)}} & {\quad {{{{if}\quad l} = {L + 1}},{m = {{L\quad {or}\quad L} + 2}}}} \\ {\quad \frac{3}{8}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {m = 2}},\ldots \quad,L}} \\ \quad & {\quad {{{{or}\quad l} = {m = {L + 2}}},\ldots \quad,K}} \\ \frac{1}{8} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,L,{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = K},{m = 1}}} \\ {\quad 0} & {\quad {otherwise}} \end{matrix},} \right.} & (19) \end{matrix}$

[0066] where, as in equation (6), indices “l” and “m” range from “zero” to, and including, “K,” and where ${s_{3} = {\frac{1}{2}\left( {s_{1} + s_{2}} \right)}},$

[0067] , the average of the values of the parameters s₁ and s₂ associated with the edges (1,0) and (0,L+1).

[0068] To ensure that the directions of the tangent vectors vary continuously at and near irregular vertices, the value(s) of the sharpness parameter(s) are gradually reduced as the level of the mesh increases. In the case of smooth feature lines, the repeated update of the value of the sharpness parameter as the level of the mesh increases would provide a value that approaches zero, which, in turn, will provide that the directions of the tangent vectors vary continuously at the limit surface. In one embodiment, for a vertex v_(q) for which the sharpness parameters s₁ and s₂ have the same value “s” on both sides of the vertex (that is, s₁=s₂), the sharpness parameter update function is

s(j+1)=(s(j))²   (20)

[0069] that is, s(j+1), the value of the sharpness parameters s₁ and s₂ at the higher “j+1-st” subdivision level mesh, is the square of s(j), the value of the sharpness parameters s₁ and s₂ at the lower (“j -the”) level mesh. On the other hand, for a vertex v_(q) for which values of sharpness parameters s₁ and s₂ are not constant across the vertex (that is, s₁≠s₂), the sharpness parameter update functions are a function of the values of both sharpness parameters s₁ and s₂. In one embodiment, the function is selected to be $\begin{matrix} {{{s_{1}\left( {j + 1} \right)} = \left( {{\frac{3}{4}{s_{1}(j)}} + {\frac{1}{4}{s_{2}(j)}}} \right)^{2}},{and}} & (21) \\ {{{s_{2}\left( {j + 1} \right)} = \left( {{\frac{1}{4}{s_{1}(j)}} + {\frac{3}{4}{s_{2}(j)}}} \right)^{2}},} & (22) \end{matrix}$

[0070] essentially providing a linear combination corresponding to quadratic splines.

[0071] Since the values of the sharpness parameters s₁ and s₂ vary from level to level, the smooth curve subdivision matrix (S_(sc,T,K,L) (s₁,s₂))_(lm) (equation (19)) will also not be constant from level to level. Accordingly eigen-analysis, which is conventionally used to determine positions of limit points and orientations of tangent vectors for subdivision surfaces, is not used here. As suggested above, a subdivision surface is defined by a collection limit points and normal vectors (or, equivalently, two tangent vectors for each normal vector), which, in turn, are provided by iteratively applying equation (4) from a definition level “j_(D)” for the mesh to the level j=∞. The definition level j_(D) is the lowest subdivision level “j” for which the respective smooth feature line is defined in the subdivision surface. Accordingly, in order to determine the positions of the limit points, the infinite subdivision matrix $\begin{matrix} {{{S_{{sc},T,K,L,{LP}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}{S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},} & (23) \end{matrix}$

[0072] is evaluated, where S_(sc,T,K,L)(s₁(j),s₂(j)) is the subdivision matrix described above in connection with equation (19) for sharpness parameters corresponding to the “j-th” level in the matrix product on the right-hand side of equation (23). For S_(sc,T,K,L,LP)(s₁,s₂) on the left-hand side of equation (23), arguments s₁ and s₂ refer to the sharpness parameters at the definition level of the smooth feature line, that is, s₁=s₁(j_(D)), and the subscript “LP” refers to “Limit Point.” Since matrix multiplication is not commutative, the order of the factors in the matrix product in equation (23) is important. In equation (23), the order of the factors from left to right in the product extends from j=∞ on the left to j=j_(D) on the right, as suggested by equation (4).

[0073] The matrix product (equation (23)), converges to a “K+1”-by-“K+1” matrix that has “K+1” rows, with the components comprising each row being identical to the components of the other rows, in the same order. A vector of weight values 1 _(LP) for determining the position σ(q) of the limit point is obtained as follows:

l _(LP)(s ₁ ,s ₂)=v _(LP) ·S _(sc,T,K,L,LP)(s ₁ ,s ₂)   (24)

[0074] where vector v_(LP) is a vector of weights that are used in determining the position of a limit point of a subdivision surface using the Loop subdivision methodology in the absence of a smooth feature line, that is, $\begin{matrix} {{v_{LP} = \left( {\frac{\omega (K)}{{\varpi (K)} + K},\frac{1}{{\varpi (K)} + K},\frac{1}{{\varpi (K)} + K},\ldots \quad,\frac{1}{{\varpi (K)} + K}} \right)},{where}} & (25) \\ {{{\varpi (K)} = \frac{3K}{8{a(K)}}},} & (26) \end{matrix}$

[0075] where a(K) is as defined in equation (3). The position σ(q) of a limit point associated with a vertex v_(q)(0) is computed from the position c^(j) ^(_(D)) (q) of the vertex v(0) and the positions c^(J) ^(_(D)) (k), k=1, . . . ,K, of the neighboring points v_(q)(k) around the vertex v_(q)(0), in the mesh corresponding to the definition level j_(D) of the smooth feature line in the subdivision surface, or to any subdivision level higher than the definition level, using the components of 1 _(LP) as weight values. The components of limit point weight vector 1 _(LP)(s₁,s₂) can be satisfactorily approximated by second degree polynomials in s₁ and s₂ using six values per component and per valence.

[0076] If ${L = \frac{K}{2}},$

[0077] symmetry considerations allow the number of values per component to be reduced. In that case, the components of limit point weight vector 1 _(LP) satisfy the following symmetry relations:

[0078] 1. The “i-th” component of limit point weight vector 1 _(LP) equals the “K+2-i-th” component of 1 _(LP), that is, (l_(LP))_(i)=(l_(LP))_(K+2-i), for ${i = {\frac{K}{2} + 2}},\ldots \quad,{K.}$

[0079] This is a result of the fact that the subdivision matrix (equation (19) is invariant upon reflection with respect to the crease line. As a result, approximations need only be generated for components i=0,1, . . . , $\frac{K}{2} + 1.$

[0080] 2. Further, since the subdivision matrix (equation (19)) is also symmetric in s₁ and s₂, ${\left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{i} = \left( {l_{LP}\left( {s_{2},s_{1}} \right)} \right)_{\frac{K}{2} + 2 - i}},$

[0081] and so approximations need only be generated for i=0,1, . . . , $\left\lfloor {\frac{K}{4} + 1} \right\rfloor,{{where}\quad {``\left\lfloor \frac{x}{y} \right\rfloor"}}$

[0082] refers to the greatest integer in the quotient $``{\frac{x}{y};}"$

[0083] 3. Further, since, if the particular values of the parameters s₁ and s₂ were interchanged, the vertex v_(q) would behave in the same way, (l_(LP)(s₁,s₂))₀=(l_(LP)(s₂,s₁))₀, and so the approximation may be constructed using only symmetric, second-degree polynomials in s₁ and s₂, that is, using four coefficients; and

[0084] 4. Further, if “K” is a multiple of “four,” then, from points (1) and (2) above, $\left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{\frac{K}{4} + 1} = {\left( {l_{LP}\left( {s_{2},s_{1}} \right)} \right)_{\frac{K}{4} + 1}.}$

[0085] Accordingly, these components can be approximated using symmetric second-degree polynomials using four coefficients.

[0086] In one embodiment, regardless of whether ${L = \frac{K}{2}},$

[0087] the approximating polynomials are computed using a least-squares Chebyshev approximation methodology. The matrix product (equation (23)) is evaluated at the points of a grid in the (s₁,s₂) region made up of roots of Chebyshev polynomials $\begin{matrix} {{\left( {s_{1},s_{2}} \right) = \left( {\cos \frac{\left( {i + \frac{1}{2}} \right)\pi}{N}} \right)},{\cos\left( {\cos \frac{\left( {j + \frac{1}{2}} \right)\pi}{N}} \right)},} & (27) \end{matrix}$

[0088] for i,j=0, . . . ,N-1. In one embodiment, “N” is taken to be “eight,” so that there are “sixty-four” sample points in equation (27). The coefficients b_(ij)(j=0, . . . ,3 in the symmetric case, or j=0, . . . ,5 in the asymmetric case) for the polynomial

(l _(LP))_(l) ≈b _(l0) +b _(l1)(s ₁ +s ₂)+b _(l2)(s ₁ ² +s ₂ ²)+b _(l3) s ₁ s ₂   (28)

[0089] in the symmetric case $\left( {i = {{0\quad {or}\quad \frac{K}{4}} + 1}} \right),$

[0090] or the polynomial

(l _(LP))_(l) ≈b _(l0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₂ ² +b _(l5) s ₁ s ₂   (29)

[0091] in the asymmetric case (“i” otherwise), are determined by a least squares methodology. In that operation, the computer graphics system 10 computes the matrix product (equation (23) evaluated at points (s₁,s₂) as defined in equation (27)). Thereafter, a set of N² polynomials (equation (28) and/or (29)) are generated using the values of s₁ and s₂ at the respective points (equation (27)) in the (s₁,s₂) region, with each polynomial being equal to the respective “i-th” component of the row of the matrix product. The computer graphics system 10 then determines the values of the coefficients b_(ij) in the polynomials using the least squares approximation methodology. After the values of the coefficients b_(ij) have been determined, they are used to generate the values of the components (1 _(LP))_(i) of limit point weight vector 1 _(LP) using equations (28) and (29).

[0092] The error in the least squares approximation has an oscillatory behavior over the region (s₁,s₂) and will be minimized if the amplitude of the oscillations is distributed evenly over the region. This can be accomplished by relaxing the constraints imposed by a weighted least squares methodology for points that are well-approximated and tightening the constraints for the points that are poorly approximated. In the weighted least squares methodology, after the values of the coefficients b_(ij) have been evaluated using the least squares methodology described above, the polynomial (equation (28) and/or (29)) is evaluated at each point in the (s₁,s₂) region, the value compared to the value generated for the respective component of the matrix product (equation (23)), and a weight value determined that reflects the difference therebetween. Thereafter, the weight values can be used in constraining the approximations of the values of the coefficients b_(ij) in an uneven manner.

[0093]FIG. 8 depicts a table of coefficients b_(ij) for K=4, 6, . . . ,16, with the indexing, in the form of the C programming language, ${{{b\left\lbrack {\frac{K}{2} - 2} \right\rbrack}\lbrack i\rbrack}\lbrack j\rbrack},$

[0094] where “i” is the index of the component of limit point weight vector 1 _(LP), taking values in the range i=0, . . . $\left\lfloor {\frac{K}{4} + 1} \right\rfloor,$

[0095] and “j” is the index of the coefficient b_(ij) of the approximating polynomial.

[0096] After the limit point weight vector 1 _(LP) associated with a vertex v_(q)(0) has been generated as described above, it can be used along with the position c^(j)(q) of the vertex v_(q)(0) and positions c^(j)(k) of the points v_(q)(k), k=1, . . . ,K neighboring the vertex v_(q)(0) to determine the position σ(q) of the limit point associated with the vertex v_(q)(0) as follows $\begin{matrix} {{{\sigma (q)} = {\sum\limits_{i = 0}^{K}{\left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},} & (30) \end{matrix}$

[0097] where, as suggested above, iεq

N(q,j) (reference FIG. 7), and where (l_(LP)(s₁,s₂))_(i) refers to the “i-th” component of 1 _(LP)(s₁,s₂) which, in turn, corresponds to the limit point weight vector 1 _(LP) for sharpness parameter values s₁ and s₂ at the definition level j=j_(D) for the smooth feature line or at any subdivision level higher than the definition level j_(D), and indices 0, . . . ,K are as shown in FIG. 7.

[0098] One embodiment makes use of a similar polynomial approximation methodology to obtain good approximations for vectors 1 _(C) and 1 _(S) of weight values that are to be used in generating the tangent vectors, tangent vector weight vector 1 _(C) being used in generating the tangent vector along the smooth feature line and tangent vector weight vector 1 _(S) being used in generating the tangent vector across the smooth feature line at the limit point associated with the vertex v_(q)(0) with which he respective tangent vector weight vectors is associated. In that methodology, a vector 1 _(C)(J) is generated as follows: $\begin{matrix} {{{l_{C}(J)} = {\left( {0,1,0,\ldots \quad,{- 1},0,\ldots}\quad \right) \cdot {\prod\limits_{j = J}^{j_{D}}{S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}}},} & (31) \end{matrix}$

[0099] where the two non-zero components of the row vector on the right hand side are a “one” at position “one” in the row vector, and a “negative one” at position ${\frac{K}{2} + 1},$

[0100] and “·” refers to the dot product. After generating vector 1 _(c)(J) according to equation (31), the value is normalized and the limit taken as J→∞: $\begin{matrix} {{l_{C} = {\lim\limits_{j\rightarrow\infty}\frac{l_{C}(J)}{{l_{C}(J)}}}},} & (32) \end{matrix}$

[0101] where ${{v} = \sqrt{\sum\limits_{i}v_{i}^{2}}},$

[0102] that is, the Euclidean norm. The components of vector 1 _(C) (equation (32)) form a sequence of weight values that are used in multiplying the respective positions of the vertex v_(q)(0) and the points v_(q)(k), k=1, . . . ,K, around the vertex v_(q)(0), as shown in FIG. 7, the sum of which defines the tangent vector along the smooth feature line at the point on the subdivision surface associated with the vertex v_(q)(0).

[0103] As with the components of limit point weight vector 1 _(LP), the components of tangent vector weight vector 1 _(C) can be approximated by polynomials in s₁ and s₂, in this case third degree polynomials. Accordingly, the approximations of the components of tangent vector weight vector 1 _(C) can be efficiently generated by using up to ten numbers per component and per valence. If ${L = \frac{K}{2}},$

[0104] symmetry considerations allow the number of polynomial coefficients that are used in generating components of tangent vector weight vector 1 _(C) to be reduced. In that case, the components of tangent vector weight vector 1 _(C) satisfy the following symmetry relations:

[0105] 1 . The “i-th” component and the “k+2-i-th” component of tangent vector weight vector 1 _(C) are equal, that is, (l_(C))_(i)=(l_(C))_(K+2-l), for ${i = {\frac{K}{2} + 2}},\ldots \quad,{K.}$

[0106] . . . ,K. This is a result of the invariance of the subdivision matrix (equation (19)) upon reflection with respect to the crease line. As a result, approximations need only be generated for components ${i = 0},1,\ldots \quad,{{\frac{K}{2} + 1};}$

[0107] 2. Further, since ${\left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{i} = \left( {l_{C}\left( {s_{2},s_{1}} \right)} \right)_{\frac{K}{2} + 2 - i}},$

[0108] approximations need only be generated for components ${i = 0},1,\ldots \quad,{\left\lfloor {\frac{K}{4} + 1} \right\rfloor;}$

[0109] 3. Further, since, if the particular values of the parameters s₁ and s₂ were interchanged, the vertex v_(q) would behave in the same manner except that the orientation of the tangent vector would be reversed, (l_(C)(s₁,s₂))₀=−(l_(C)(s₂,s₁))₀, in which case the approximation may be constructed using only anti-symmetric, third-degree polynomials in s₁ and s₂, using four coefficients; and

[0110] 4. Further, if K is a multiple of “four,” then, from points (1) and (2) immediately above, $\left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{\frac{K}{4} + 1} = {- {\left( {l_{C}\left( {s_{2},s_{1}} \right)} \right)_{\frac{K}{4} + 1}.}}$

[0111] Accordingly, these components can be approximated using anti-symmetric polynomials using four coefficients.

[0112] In one embodiment, the approximating polynomials are also computed using a least squares Chebyshev approximation methodology similar to that used in connection with the limit point approximation described above. The matrix product of equation (31) is evaluated at points of a grid in the (s₁,s₂) region made up of roots of Chebyshev polynomials (equation (27)). The coefficients b_(ij)(j=0, . . . ,3, in the anti-symmetric case, or j=0, . . . ,9, in the non-symmetric case) for the polynomial

(l _(C))_(l) =b _(l0)(s ₁ −s ₂)+b _(l1)(s ₁ ² −s ₂ ²)+b _(l2)(s ₁ ³ −s ₂ ³)+b _(l3)(s ₁ ² s ₂ −s ₁ s ₂ ²)   (33)

[0113] in the anti-symmetric case $\left( {i = {{0\quad {or}\quad \frac{K}{4}} + 1}} \right),$

[0114] or the polynomial $\begin{matrix} {{\left( l_{c} \right)_{i} = {b_{i0} + {b_{i1}s_{1}} + {b_{i2}s_{2}} + {b_{i3}s_{1}^{2}} + {b_{i4}s_{1}s_{2}} + {b_{i5}s_{2}^{2}} + {b_{i6}s_{1}^{3}} + {b_{i7}s_{1}^{2}s_{2}} + {b_{i8}s_{1}s_{2}^{2}} + {b_{i9}s_{2}^{3}}}},} & (34) \end{matrix}$

[0115] in the non-symmetric case (“i” otherwise), are determined using the least squares methodology as described above.

[0116] In a manner similar to the generation of the tangent vector along the smooth feature line (reference equations (31) through (34) above), a vector 1 _(s) of weight values is used in generating the tangent vector across the smooth feature line. The components of tangent vector weight vector 1 _(s) comprise a sequence of weight values that are used to multiply the positions of the vertex v_(q)(0) and points v_(q)(1) through v_(q)(K) around vertex v_(q)(0) (reference FIG. 7), the sum of which comprises the tangent vector across the smooth feature line. In that methodology, a vector 1 _(s)(J) is generated as follows: $\begin{matrix} {{l_{S}(J)} = {\left( {0,{\sin \quad \frac{2\quad \pi (0)}{K}},{\sin \frac{2\quad {\pi (1)}}{K}},\ldots \quad,{\sin \quad \frac{2\pi \left( {K - 1} \right)}{K}}} \right) \cdot {\prod\limits_{j = J}^{j_{D}}{{S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}.}}}} & (35) \end{matrix}$

[0117] Vector 1 _(S)(J) is normalized and the limit taken as J→∞, in the same manner as described above in connection with equation (32), to provide tangent vector weight vector 1 _(s).

[0118] When ${L = \frac{K}{2}},$

[0119] tangent vector weight vector 1 _(S) is $\begin{matrix} {{l_{S} = \left( {0,{\sin \frac{2\pi (0)}{K}},{\sin \frac{2\pi (1)}{K}},\ldots \quad,{\sin \frac{2\pi \left( {K - 1} \right)}{K}}} \right)},} & (36) \end{matrix}$

[0120] which is the same as in a the case of a smooth feature line associated with a sharpness parameter of zero.

[0121] The components of tangent vector weight vector 1 _(s) can be approximated as 1 _(s)(s₁,s₂) using third degree polynomials in sharpness parameters s₁ and s₂. The operations performed in generating the coefficients for the polynomials correspond to the operations performed in generating the coefficients for the polynomials described above for the tangent vector weight vector 1 _(c) used in generating the tangent vector along the smooth feature line (equations (31) through (34)).

[0122]FIG. 9 depicts a table of coefficients b_(ij) for K=4, 6, . . . ,12, with the indexing, in the form of the C programming language, ${{{b\left\lbrack {\frac{K}{2} - 2} \right\rbrack}\lbrack i\rbrack}\lbrack j\rbrack},$

[0123] where “i” is the index of the component of 1 _(C), taking values in the range i=0, . . . $\left\lfloor {\frac{K}{4} + 1} \right\rfloor,$

[0124] and “j” is the index of the coefficient b_(ij) of the approximating polynomial.

[0125] As noted above, the tangent vector weight vectors 1_(C)(=1_(C)(s₁,s₂)) and 1_(S)(=1_(S)(s₁,s₂)) (where s₁ and s₂ are the sharpness parameter values at the definition level j=j_(D) for the smooth feature line) are used, along with the position c^(j)(q) of the vertex v_(q)(0) and the positions c^(j)(k) of the neighboring points v_(q)(k), k=1, . . . ,K. In particular, the components of the respective tangent vector weight vectors are used to weight the positions of the vertex and neighboring points, with the sum comprising the tangent vector. That is, the tangent vector e_(C)(q) along the smooth feature line and the tangent vector e_(S)(q) across the smooth feature line are generated as $\begin{matrix} {{{e_{C}(q)} = {\sum\limits_{i = 0}^{K}{\left( {l_{c}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}}{{{e_{S}(q)} = {\sum\limits_{i = 0}^{K}{\left( {l_{S}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},}} & (37) \end{matrix}$

[0126] where 1_(C)(s₁,s₂)=1_(C) and 1_(S)(s₁,s₂)=1_(S) (where s₁ and s₂ are the sharpness parameter values at the definition level j=j_(D) for the smooth feature line), and indices 0, . . . ,K are as shown in FIG. 7.

[0127] In some circumstances, it is impractical to use polynomials to generate approximations for limit point weight vector 1 _(LP) and tangent vector weight vectors 1 _(C) and 1 _(S). For example, if the number of configurations of smooth feature lines, each requiring a different set of polynomials, exceeds some number, the number of polynomials would increase to an extent that it would be impractical to use that methodology. An alternative methodology makes use of extrapolation to generate approximations for limit point weight vector 1 _(LP) and tangent vector weight vectors 1 _(C) and 1 _(S).

[0128] The extrapolation methodology for generating an approximation of limit point weight vector 1 _(LP)(s₁,s₂) starts with the first few factors of equation (23) for finite values of index “j.” In the following, it will be assumed that the definition level j_(D) for the smooth feature line is level “zero,” although it will be appreciated that this will not restrict the generality of the description. The matrix product generated by taking factors j=J, J-1, . . . ,0 is given by $\begin{matrix} {{{{S_{{sc},T,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}{S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},} & (38) \end{matrix}$

[0129] with

S _(sc,T,K,L,LP)(0)(s ₁ ,s ₂):=I _(K+1)   (39)

[0130] where, for the limit case J=0 (in which case there would be no factors in generating the product matrix), the product matrix S_(sc,T,K,L,LP)(0)(s₁,s₂) is the identity matrix of size “K+1” by “K+1.” A vector of weight values 1 _(LP) for determining the position σ(q) of the limit point is obtained as follows:

l _(LP)(J)(s ₁ ,s ₂)=v _(LP) ·S _(sc,T,K,L,LP)(J)(s ₁ ,s ₂)   (40)

[0131] where v_(LP) is as defined above in connection with equations (28) and (29).

[0132] In one embodiment, a reasonably accurate approximation of limit point weight vector 1 _(LP) can be obtained using just the vectors corresponding to J=0,1,2,3 by using polynomial extrapolation. The convergence of 1_(LP)(J)(s₁,s₂) to 1_(LP)(s₁,s₂) is very rapid, with the error ε(J)=|l_(LP)(J)−l_(LP)| approaching zero as 2⁻² ^(J) if the update rule described above in connection with equations (20) through (22) are used for the sharpness parameters. The approximation to 1 _(LP) is constructed by generating the third degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, 1, 2, 3, and then evaluating this polynomial by extrapolation at the point x=0, that is $\begin{matrix} {{l_{LP} \approx {\sum\limits_{J = 0}^{3}{b_{J}{l_{LP}(J)}}}},} & (41) \end{matrix}$

[0133] where 1 _(LP)(J) is as defined in equation (40) and where the coefficients b_(j) are given by $\begin{matrix} {{b_{0} = \frac{- 135}{120015}}{b_{1} = \frac{1270}{120015}}{b_{2} = \frac{- 12192}{120015}}{b_{3} = {\frac{131072}{120015}.}}} & (42) \end{matrix}$

[0134] This extrapolation methodology can be used for any vertex, whether the vertex is regular or irregular. In addition, the methodology can be used for any configuration of creases through the respective vertex, and any value of valence “K” for the respective vertex.

[0135] An extrapolation methodology can also be used to generate the tangent vector weight vectors 1 _(C) and 1 _(S). Generally, in that methodology the matrix products S_(sc,T,K,L,LP)(J)(s₁,s₂) described above (equations (38) and (39)), which are then

[0136] (1) multiplied by a vector v_(C), if tangent vector weight vector 1 _(C) is being generated, or a vector v_(S), if tangent vector weight vector 1 _(S) is being generated, and

[0137] (2) the result from (1) is thereafter multiplied by a dilation factor that maintains the respective tangent vector weight vector in normalized form.

[0138] The approximations of the tangent vector weight vectors 1 _(C) and 1 _(S) are generated from

l _(C)(J)(s ₁ ,s ₂)=d(K)^(J) v _(C) ·S _(sc,T,K,L,LP)(J)(s ₁ ,s ₂)   (43)

l _(S)(J)(s ₁ ,s ₂)=d(K)^(j) v _(S) ·S _(sc,T,K,L,LP)(J)(s ₁ ,s ₂)

[0139] where d(K) represents the dilation factor. The vectors v_(C) and v_(S) are given by $\begin{matrix} {{v_{C} = \left( {0,{\cos \frac{2\pi (0)}{K}},{\cos \frac{2\pi (1)}{K}},\ldots \quad,{\cos \frac{2\pi \left( {K - 1} \right)}{K}}} \right)}{{v_{S} = \left( {0,{\sin \frac{2\pi (0)}{K}},{\sin \frac{2\pi (1)}{K}},\ldots \quad,{\sin \frac{2\pi \left( {K - 1} \right)}{K}}} \right)},}} & (44) \end{matrix}$

[0140] and the dilation factor d(K) is the reciprocal of one of the eigenvalues of the subdivision matrix for the smooth case, namely, $\begin{matrix} {{d(K)} = {\frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \frac{2\pi}{K}}}.}} & (45) \end{matrix}$

[0141] Approximations to the tangent vector weight vectors 1 _(C) and 1 _(S) are given by $\begin{matrix} {{l_{C} = {\sum\limits_{J = 0}^{3}{b_{J}{l_{C}(J)}}}}{{l_{S} = {\sum\limits_{J = 0}^{3}{b_{J}{l_{S}(J)}}}},}} & (46) \end{matrix}$

[0142] where the coefficients b_(J) have the form as given in equation (42). This extrapolation methodology can be used in connection with all configurations. The tangent vector generated using the weight vector 1 _(C) will be oriented approximately in the direction of the edge [1,0] between vertex v_(q)(0) and point v_(q)(1), and the tangent vector generated using the weight vector 1 _(S) will be oriented approximately perpendicular to the edge [1,0]. Although the angle between edges [1,0] and [0,L+1] for a given level “j” in a subdivision surface is typically not one hundred and eighty degrees, as the level “j” approaches infinity, the angle will approach one hundred and eighty degrees. Accordingly, in the limit, that is, as “j” approaches infinity, the tangent vector along the edge on one side of the limit point associated with a vertex v_(q)(0) will approach the opposite direction as the tangent vector along the edge on the other side of the limit point associated with the same vertex. Similarly, the tangent vector across the edge on one side of the limit point associated with the vertex v_(q)(0) will approach the opposite direction as the tangent vector across the edge on the other side of the limit point associated with the same vertex.

[0143] With this background, operations performed by the computer graphics system 10 in generating the weight vectors 1 _(LP), 1 _(C) and 1 _(S) useful in generating the limit point and tangent vectors for a subdivision surface for a triangular mesh will be described in connection with the flowchart depicted in FIG. 10. With reference to that FIG., the computer graphics system 10 first initializes the subdivision matrices S_(sc,T,K,L)(s₁(j),s₂(j)),J=0,1,2 (step 100) as described above in connection with equation (19). Thereafter, the computer graphics system 10 generates the matrix products S_(sc,T,K,L,LP)(J)(s₁,s₂) for J=2,3 (step 101). For J=1, S_(sc,T,K,L,LP)(1)(s₁,s₂) =S_(sc,T,K,L)(s₁,s₂), and as indicated above, for J=0, S_(sc,T,K,L,LP)(0)(s₁,s₂) is the “K+1”-by-“K+1” identity matrix.

[0144] After the computer graphics system 10 has generated the matrix products S_(sc,T,K,L,LP), it takes the first row of each matrix product S_(sc,T,K,L,LP)(J)(s₁,s₂), J=0, 1, 2, 3, and generates component-wise an approximation to limit point weight vector 1 _(LP) in accordance with the extrapolation formula in equation (41) (step 102). In addition, the computer graphics system 10 uses the matrix products S_(sc,T,K,L,LP)(J)(s₁,s₂) dilation factor d(K) and vectors v_(c) and v_(s) to generate the vectors 1 _(C)(J) and 1 _(S)(J), J=1, 2, and 3 as described above in connection with equation (43) (step 103). For J=0, the respective weight vectors are 1_(C)(0)=v_(c) and 1_(S)(0)=v_(s). Following step 103, the computer graphics system 10 can use 1 _(C)(J) and 1 _(S)(J) to generate the approximations to the tangent vector weight vectors 1 _(C) and 1 _(S) in accordance with equation (46) (step 104). After the limit point weight vector 1 _(LP) and tangent vector weight vectors 1 _(C) and 1 _(S) have been generated, the limit point and tangent vectors can be generated as described above (reference equations (30) and (37), respectively), and the normal vector can also be generated as the cross product between the tangent vectors (step 105).

[0145] Operations performed by the computer graphics system 10 in connection with generating a smooth feature line in the case of a subdivision surface defined by a quadrilateral mesh will be described in connection with FIGS. 11 through 13 and the flow chart in FIG. 10. With reference to FIG. 11, that FIG. depicts a portion of a subdivision surface defined by a triangular mesh with vertex v_(q) (vertex v_(q)=v_(q)(0)) and points v_(q)(1) through v_(q)(2K) with indices numbered as depicted in the FIG. It will be appreciated that points v_(q)(1) through v_(q)(K) are first-order neighbors of vertex v_(q), and points v_(q)(K+1) through v_(q)(2K) are second-order neighbors of vertex v_(q). The vertices are labeled such that a crease passes through point v_(q)(1), vertex v_(q)(0) and point v_(q)(L+1) along edges v_(q)(1), v_(q) (which will be referred to as edge (1,0)) and v_(q),v_(q)(L+1) (which will be referred to as edge (0,L+1)). The value of the sharpness parameter associated with the edge (1,0) will be referred to as s₁ and the value of the sharpness parameter associated with the edge (0,L+1) will be referred to as s₂. Generally the subdivision rule described in equations (13) and (14) can be used to determine the positions of respective vertices, using, instead of the subdivision matrix described above in connection with equation (15), the subdivision matrix $\begin{matrix} {\left( {S_{{sc},Q,K,L}\left( {s_{1},s_{2}} \right)} \right)_{l,m} = \left\{ {\begin{matrix} {\quad {{\left( {1 - s_{3}} \right)\left( {1 - \frac{7}{4K}} \right)} + {\frac{3}{4}s_{3}}}} & {\quad {{{{if}\quad l} = 0},{m = 0}}} \\ {\quad {{\left( {1 - s_{3}} \right)\left( \frac{3}{2K^{2}} \right)} + {\frac{1}{8}s_{3}}}} & {\quad {{{{if}\quad l} = 0},{m = {{1\quad {or}\quad L} + 1}}}} \\ {\quad {\left( {1 - s_{3}} \right)\left( \frac{3}{2K^{2}} \right)}} & {\quad {{{{if}\quad l} = 0},{m = 2},\ldots \quad,L}} \\ \quad & {\quad {{{{or}\quad l} = 0},{m = {L + 2}},\ldots \quad,K}} \\ {\quad {\left( {1 - s_{3}} \right)\left( \frac{1}{4K^{2}} \right)}} & {\quad {{{{if}\quad l} = 0},{m = {K + 1}},\ldots \quad,{2K}}} \\ {\quad {{\frac{3}{8}\left( {1 - s_{2}} \right)} + {\frac{1}{2}s_{2}}}} & {\quad {{{{if}\quad l} = 1},{m = {0\quad {or}\quad 1}}}} \\ {\quad {\frac{1}{16}\left( {1 - s_{2}} \right)}} & {\quad {{{{if}\quad l} = {L + 1}},{m = 2},K,}} \\ \quad & {\quad {K + {1{\quad \quad}{or}\quad 2K}}} \\ {\quad {{\frac{3}{8}\left( {1 - s_{1}} \right)} + {\frac{1}{2}s_{1}}}} & {\quad {{{{if}\quad l} = {L + 1}},{m = {{0\quad {or}\quad L} + 1}}}} \\ {\quad {\frac{1}{16}\left( {1 - s_{1}} \right)}} & {\quad {{{{if}\quad l} = {L + 1}},{m = L},{L + 2},}} \\ \quad & {\quad {K + {1\quad {or}\quad K} + L + 1}} \\ {\quad \frac{3}{8}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {m = 2}},\ldots \quad,L}} \\ \quad & {\quad {{{{or}\quad l} = {m = {L + 2}}},{\ldots \quad K}}} \\ {\quad \frac{1}{16}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,L,{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,L,{m = {K + l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,L,{m = {K + l}}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,{K - 1},{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = K},{m = 1}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {K + l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {K + l}}}} \\ {\quad \frac{1}{4}} & {\quad {{{{if}\quad l} = {K + 1}},\ldots \quad,{{2K} - 1},{m = 0},}} \\ \quad & {\quad {{l - K},{l - K + {1\quad {or}\quad l}}}} \\ \quad & {\quad {{{{or}\quad l} = {2K}},{m = 0},K,{1\quad {or}\quad 2K}}} \\ {\quad 0} & {\quad {otherwise}} \end{matrix},} \right.} & (47) \end{matrix}$

[0146] is used, where, as with equation (19), ${s_{3} = {\frac{1}{2}\left( {s_{1} + s_{2}} \right)}},$

[0147] the average of the values of the parameters s₁ and s₂ associated with the edges (1,0) and (0,L+1).

[0148] As with the case of a subdivision surface defined by a triangular mesh, to ensure that the direction of the respective tangent vectors vary continuously at and near irregular vertices at the various subdivision levels, the value(s) of the sharpness parameter(s) are gradually reduced as the subdivision level of the mesh increases. In one embodiment, the computer graphics system varies the value(s) of the sharpness parameter(s) in the case of a subdivision surface defined by a quadrilateral mesh in the same manner as in the case of a subdivision surface defined by a triangular mesh (reference equations (20) through (22) above).

[0149] As with the case of a subdivision surface defined by a triangular mesh, to determine the positions of the limit point associated with a vertex v_(q)(0) in the case of a subdivision surface defined by a quadrilateral mesh, the infinite subdivision matrix product $\begin{matrix} {{S_{{sc},Q,K,L,{LP}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}{S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}} & (48) \end{matrix}$

[0150] is evaluated, where S_(sc,Q,K,L)(s₁(j),s₂(j)) is the subdivision matrix from equation (47) for sharpness parameter values s₁ and s₂ associated with the j-th level and index j_(D) refers to the definition level of the smooth crease. In the left-hand side of equation (48), for the arguments s₁ and s₂, s₁=s₁(j_(D)) and s₂=s₂(j_(D)). As in the case of a subdivision surface defined by a triangular mesh, the matrix product in equation (48) converges to a matrix with identical rows, in this case each row being of size 2K+1. A vector of weight values 1 _(LP) for determining the position σ(q) of a limit point associated with vertex v_(q)(0) is obtained as follows:

l _(lp)(s ₁ ,s ₂)=v _(LP) ·S _(sc,Q,K,L,LP)(s ₁ ,s ₂)   (49)

[0151] where vector v_(LP) is a vector of weights that are used in determining the position of a limit point of a subdivision surface defined by a quadrilateral mesh in the absence of a smooth feature line, that is, $\begin{matrix} {{v_{LP} = {\frac{1}{K\left( {K + 5} \right)}\left( {K^{2},4,\ldots \quad,4,1,\ldots \quad,1} \right)}},} & (50) \end{matrix}$

[0152] where, in equation (50), there are “K” components having the value “four” and “K” components with value “one.”

[0153] The components 1 _(LP)(s₁,s₂)_(i), i=0, . . . ,2K, of the row vector 1 _(LP)(s₁,s₂), and the positions c^(j)(0) of the vertex v_(q)(0) and c^(j)(i) (i=1, . . . ,2K) of the neighboring points v_(q)(i) are used to determine the position σ(q) of a limit point associated with the vertex v_(q)(0) as follows $\begin{matrix} {{{\sigma (q)} = {\sum\limits_{i = 0}^{2K}{\left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},} & (51) \end{matrix}$

[0154] where, as suggested above, iεq

N_(e)(q,j)

N_(f)(q,j) (reference FIG. 11).

[0155] As with the case of a subdivision surface defined by a triangular mesh, the components of the limit point weight vector 1 _(LP)(s₁,s₂) can be approximated using polynomial expansions. The components of limit point weight vector 1 _(LP)(s₁,s₂) can be satisfactorily approximated by second degree polynomials in s₁ and s₂ using six values per component and per valence. If the value of “K” is even, and if ${L = \frac{K}{2}},$

[0156] symmetry considerations allow the number of values per component to be reduced. In that case, the components of limit point weight vector 1 _(LP) satisfy the following symmetry relations:

[0157] 1. the “i-th” component of limit point weight vector 1 _(LP)(s₁,s₂) equals the “K+2-i-th” component of limit point weight vector 1 _(LP)(s₁,s₂), that is, (l_(LP)(s₁,s₂))_(l)=(l_(LP)(s₁,s₂))_(K+2-1), for i=2, . . . , $\frac{K}{2},$

[0158] and the “i-th” component of limit point weight vector 1 _(LP)(s₁,s₂) equals the “3K+1-i-th” component of limit point weight vector 1 _(LP)(s₁,s₂), that is, (l_(lP)(s₁,s₂))_(i)=(l_(LP)(s₁,s₂))_(3K+1-i), for i=K+1, . . . , ${i = {K + 1}},\ldots \quad,{{K + \frac{K}{2}};}$

${{2.\quad \left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{i}} = \left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{\frac{K}{2} + 2 - i}},{{{for}\quad i} = 1},\ldots \quad,{\frac{K}{2} + 1},{and}$ $\quad {{\left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{i} = \left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{{2K} + \frac{K}{2} + 1 - i}},{{{for}\quad i} = {K + 1}},\ldots \quad,{{K + \frac{K}{2} + 1};}}$

[0159] 3. (l_(LP)(s₁,s₂))₀=(l_(LP)(s₁,s₂))₀; and

[0160] 4. ${{4.\quad \left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{\frac{K}{4} + 1}} = \left( {l_{LP}\left( {s_{2},s_{1}} \right)} \right)_{\frac{K}{4} + 1}},$

[0161] if “K” is a multiple of “four,” and ${\left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{K + {\lfloor\frac{K}{4}\rfloor} + 1} = \left( {l_{LP}\left( {s_{2},s_{1}} \right)} \right)_{K + {\lfloor\frac{K}{4}\rfloor} + 1}},$

[0162] if “K” is not a multiple of “four.”

[0163] Given the symmetry relations described immediately above, it is only necessary to generate approximations for limit point weight vector 1 _(LP) for i=0, . . . , $\left\lfloor \frac{K}{4} \right\rfloor + 1$

[0164] and ${i = {K + 1}},\ldots \quad,{K + \left\lfloor \frac{K}{4} \right\rfloor + 1},$

[0165] and, in addition, symmetric polynomials can be used for i=0 for any even value of “K,” as well as for $i = {\frac{K}{4} + 1}$

[0166] if “K” is a multiple of “four,” or $i = {K + \left\lfloor \frac{K}{4} \right\rfloor + 1}$

[0167] if “K” is even but not a multiple of “four.”

[0168] As in the case of a subdivision surface defined by a triangular mesh, in one embodiment i the case of a subdivision surface defined by a quadrilateral mesh, regardless of whether ${L = \frac{K}{2}},$

[0169] the approximating polynomials are computed using a least-squares Chebyshev approximation methodology (reference equation (27) above). In this case, the coefficients b_(ij)(j=0, . . . ,3 in the symmetric case, or j=0, . . . ,5 in the asymmetric case) for the polynomial

(l _(LP))_(l) ≈b _(l0) +b _(l1)(s ₁ +s ₂)+b _(l2)(s ₁ ² +s ₂ ²)+b _(i3) s ₁ s ₂   (52)

[0170] in the symmetric case, or the polynomial

(l _(LP))_(l) ≈b ₁₀ +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₁ s ₂ +b _(l5) s ₂ ²   953)

[0171] in the asymmetric case, are determined by a least squares methodology. FIG. 12 depicts a table of coefficients b_(ij) for K=4, L=2, for values of “i” i=0; 1; 2; 5. After the coefficients b_(ij) have been generated (equations (52) and (53)), they are used to generate the limit point weight vector 1 _(LP) in the same manner as in the case of a subdivision surface defined by a triangular mesh, which can be used to generate the position of the limit point σ(q) as described above in connection with equation (51).

[0172] The tangent vectors in the case of a subdivision surface defined by a quadrilateral mesh are generated in a manner similar to that used to generate tangent vectors in the case of a subdivision surface defined by a triangular mesh. Generally, in that methodology the matrix products S_(sc,Q,K,L,LP)(J)(s₁,s₂) as described above (equation (48)) are generated, which are then

[0173] (1) multiplied by a vector v_(C), if tangent vector weight vector 1 _(C) is being generated, or a vector v_(S), if tangent vector weight vector 1 _(S) is being generated, and

[0174] (2) the result from (1) is thereafter multiplied by a dilation factor that maintains the respective tangent vector in normalized form, as in the case of the tangent vector weight vectors in the case of a triangular mesh. Initially, the vectors 1 _(C)(J)(s₁,s₂) and 1 _(S)(J)(s₁,s₂) are generated as

l _(C)(s ₁ ,s ₂)=d(K)^(J) v _(C) ·S _(sc,Q,K,L,LP)(J)(s ₁ ,s ₂)   (54)

l _(S)(s ₁ ,s ₂)=d(K)^(J) v _(s) ·S _(sc,Q,K,L,LP)(J)(s ₁ ,s ₂)

[0175] In the case of a subdivision surface defined by a quadrilateral mesh, the respective vectors v_(C) and v_(S) are given by $\begin{matrix} {\left( v_{C} \right)_{i} = \left\{ {{\begin{matrix} {\quad 0} & {\quad {{{if}\quad i} = 0}} \\ {A_{K} = {\cos \quad \frac{2\quad {\pi \left( {i - 1} \right)}}{K}}} & {\quad {{{{if}\quad i} = 1},\ldots \quad,K}} \\ {\quad {{\cos \quad \frac{2{\pi \left( {i - K - 1} \right)}}{K}} + {\cos \quad \frac{2{\pi \left( {i - K} \right)}}{K}}}} & {\quad {{{{if}\quad i} = {K + 1}},\ldots \quad,{2K}}} \end{matrix}\left( v_{S} \right)_{i}} = \left\{ {\begin{matrix} {\quad 0} & {\quad {{{if}\quad i} = 0}} \\ {A_{K} = {\sin \quad \frac{2\quad {\pi \left( {i - 1} \right)}}{K}}} & {\quad {{{{if}\quad i} = 1},\ldots \quad,K}} \\ {\quad {{\sin \quad \frac{2{\pi \left( {i - K - 1} \right)}}{K}} + {\sin \quad \frac{2{\pi \left( {i - K} \right)}}{K}}}} & {\quad {{{{if}\quad i} = {K + 1}},\ldots \quad,{2K}}} \end{matrix},} \right.} \right.} & (55) \end{matrix}$

[0176] and the dilation factor is given as the reciprocal of the subdominant eigenvalue of the subdivision matrix (equation 47) for a smooth interior vertex: $\begin{matrix} {{{d(K)} = \frac{1}{\frac{A_{K}}{16} + \frac{1}{4}}},} & (56) \end{matrix}$

[0177] where A_(K) is defined by $\begin{matrix} {A_{K} = {1 + {\cos \left( \frac{2\pi}{K} \right)} + {{\cos \left( \frac{\pi}{K} \right)}{\sqrt{2\left( {9 + {\cos 2\frac{\pi}{K}}} \right)}.}}}} & (57) \end{matrix}$

[0178] The tangent vector weight vectors 1 _(C) and 1 _(S) are used to generate the tangent vectors as follows: $\begin{matrix} {{{e_{C}(q)} = {\sum\limits_{i = 0}^{2K}{\left( {l_{c}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}}{{{e_{S}(q)} = {\sum\limits_{i = 0}^{2K}{\left( {l_{c}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},}} & (58) \end{matrix}$

[0179] where the indexing is as shown in FIG. 11.

[0180] As in the case of a subdivision surface defined by a triangular mesh, in the case of a subdivision surface defined by a quadrilateral mesh the tangent vector e_(C)(q) generated for a vertex v_(q)(0) generated using the tangent vector weight vector 1 _(C) will be oriented approximately along the smooth feature line through the limit point associated with the vertex v_(q)(0), and the tangent vector e_(S)(q) that is generated using the tangent vector weight vector 1 _(S) will be oriented approximately perpendicular to the smooth feature line through the limit point associated with the vertex v_(q)(0).

[0181] Also, as with the case of a subdivision surface defined by a triangular mesh, the tangent vector weight vectors in the case of a subdivision surface defined by a quadrilateral mesh can be approximated using polynomial approximations. The components of tangent vector weight vectors 1 _(C)(s₁,s₂) and 1 _(S)(s₁,s₂) can be satisfactorily approximated by third degree polynomials in s₁ and s₂ using, in general, ten values per component and per valence If the value of “K” is even, and if ${L = \frac{K}{2}},$

[0182] symmetry considerations allow the number of values per component to be reduced. In that case, the components of tangent vector weight vector 1 _(C) satisfy the following symmetry relations:

[0183] 1. the “i-th” component of tangent vector weight vector 1 _(C)(s₁,s₂) equals the “K+2-i-th” component of tangent vector weight vector tangent vector weight vector 1 _(C)(s₁,s₂), that is, (l_(C)(s₁,s₂))_(i)=(l_(C)(s₁,s₂))_(K+2-1), for ${i = 2},\ldots \quad,\frac{K}{2},$

[0184] , and the “i-th” component of tangent vector weight vector 1 _(C)(s₁,s₂) equals the “3K+1-i-th” component of tangent vector weight vector 1 _(C)(s₁,s₂), that is, (l_(C)(s₁,s₂))_(l)=(l_(C)(s₁,s₂))_(3K+1-l), for ${i = {K + 1}},\ldots \quad,{{K + \frac{K}{2}};}$ ${\left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{i} = {- \left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{\frac{K}{2} + 2 - i}}},{{{for}\quad i} = 1},\ldots \quad,{\frac{K}{2} + 1},{{{and}\left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)}_{i} = {- \left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{{2K} + \frac{K}{2} + 1 - i}}},{{{for}\quad i} = {K + 1}},\ldots \quad,{{K + \frac{K}{2} + 1};}$

${\left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{\frac{K}{4} + 1} = {- \left( {l_{C}\left( {s_{2},s_{1}} \right)} \right)_{\frac{K}{4} + 1}}},$

${\left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{K + {\lfloor\frac{K}{4}\rfloor} + 1} = {- \left( {l_{C}\left( {s_{2},s_{1}} \right)} \right)_{K + {\lfloor\frac{K}{4}\rfloor} + 1}}},$

${i = 0},\ldots \quad,\quad {{\left\lfloor \frac{K}{4} \right\rfloor + {1\quad {and}\quad i}} = {K + 1}},\ldots \quad,{K + \left\lfloor \frac{K}{4} \right\rfloor + 1},$

$i = {\frac{K}{4} + 1}$

$i = {K + \left\lfloor \frac{K}{4} \right\rfloor + 1}$

[0185] if “K” is not a multiple of “four.”

[0186] Given the symmetry relations described immediately above, it is only necessary to generate approximations for i=0, . . . ,└{fraction (K/4)}┘+1 and i=K+1, . . . , K+└{fraction (K/4)}┘+1, and, in addition, anti-symmetric polynomials can be used for i=0 for any even value of “K,” as well as for i={fraction (K/4)}+1 if “K” is a multiple of “four,” or i=K+└{fraction (K/4)}┘+1 if “K” is even but not a multiple of “four.”

[0187] As in the case of a subdivision surface defined by a triangular mesh, in one embodiment, the approximating polynomials are also computed using a least squares Chebyshev approximation methodology similar to that used in connection with the limit point approximation described above. The matrix product of equation (48) is evaluated at points of a grid in the (s₁,s₂) region made up of roots of Chebyshev polynomials (equation (27)). In this case, the coefficients b_(ij) (j=0, . . . ,3, in the anti-symmetric case, or j=0, . . . ,9, in the non-symmetric case) for the polynomial

(l _(C))_(l) ≈b _(l0)(s ₁ −s ₂)+b _(l1)(s ₁ ² −s ₂ ²)+b _(l2)(s ₁ ³ −s ₂ ³)+b _(l3)(s ₁ ² s ₂ −s ₁ s ₂ ²)   (59)

[0188] in the anti-symmetric case, or the polynomial

(l _(C))_(l) ≈b _(i0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₁ s ₂ +b _(l5) s ₂ ² +b _(l6) s ₁ ³ +b _(l7) s ₁ ² s ₂ +b _(l8) s ₁ s ₂ ² +b _(l9) s ₂ ³   (60)

[0189] in the non-symmetric case, are determined using the least squares methodology. Operations performed in connection with the least squares methodology correspond to those described above in the case of a subdivision surface defined by a triangular mesh. The components of tangent vector weight vector 1 _(S) can be approximated as 1 _(S)(s₁,s₂) using third degree polynomials in sharpness parameters s₁ and s_(2.) The operations performed in generating the coefficients for the polynomials correspond to the operations performed in generating the coefficients for the polynomials described above for the tangent vector weight vector 1 _(C) used in generating the tangent vector along the smooth feature line. FIG. 13 depicts a table of coefficients b_(ij) for K=4, L=2, corresponding to i=0; 1; 2; 5.

[0190] After the tangent vector weight vectors 1 _(C) and 1 _(S) have been generated, they are used to generate the tangent vectors e_(C) and e_(S) as described above in connection with equation (58).

[0191] As in the case of a subdivision surface defined by a triangular mesh, in some circumstances, it is impractical to use polynomials to generate approximations for limit point weight vector 1 _(LP) and tangent vector weight vectors 1 _(C) and 1 _(S). An alternative methodology makes use of polynomial extrapolation to generate approximations for limit point weight vector 1 _(LP) and tangent vector weight vectors 1 _(C) and 1 _(S). This extrapolation methodology is similar to the methodology described above in connection with equations 38-46.

[0192] Operations performed by the computer graphics system 10 in connection with generating the limit point weight vector 1 _(LP) and tangent vector weight vectors 1 _(C) and 1 _(S) for a subdivision surface defined by a quadrilateral mesh, using the polynomial extrapolation methodology, are similar to those described above in connection with FIG. 10 for a subdivision surface defined by a triangular mesh, and reference should be made to FIG. 10 for that description.

[0193] The arrangement provides a number of advantages. In particular, the invention provides an arrangement for generating a subdivision surface from a representation defined by a control mesh at a selected level, by applying the same parameterized subdivision rule at each level, with the value(s) of the parameter(s) varying at at least some of the levels. The invention specifically provides for the generation of a smooth feature line in a subdivision surface using the same parameterized subdivision rule at each level, with the value(s) of the parameter(s) defining the smooth feature line varying at at least some of the levels. The resulting subdivision surface is of relatively high quality and can be efficiently evaluated.

[0194] It will be appreciated that numerous changes and modifications may be made to the arrangement as described herein. For example, it will be appreciated that, although the arrangement has been described in connection with meshes of triangular and quadrangular faces, it will be appreciated that the arrangement may find utility in connection with meshes having faces of different polygonal structures.

[0195] Furthermore, although specific subdivision rules (equations (19) and (46)) have been described, it will be appreciated that other subdivision rules may find utility.

[0196] In addition, although a methodology has been described for updating the sharpness parameters s₁ and s₂, and although various methodologies have been described for approximating weight vectors 1 _(LP), 1 _(C) and 1 _(S), it will be appreciated that other parameter update and approximation methodologies may find utility.

[0197] Furthermore, in connection with the extrapolation methodologies descrbied herein, it will be appreciated that the number of coefficients b_(J), and the upper limit (“three”) on the summations in equations (41) and (46) may differ if a polynomial other than of order “three” is used in the extrapolation.

[0198] It will be appreciated that a system in accordance with the invention can be constructed in whole or in part from special purpose hardware or a general purpose computer system, or any combination thereof, any portion of which may be controlled by a suitable program. Any program may in whole or in part comprise part of or be stored on the system in a conventional manner, or it may in whole or in part be provided in to the system over a network or other mechanism for transferring information in a conventional manner. In addition, it will be appreciated that the system may be operated and/or otherwise controlled by means of information provided by an operator using operator input elements (not shown) which may be connected directly to the system or which may transfer the information to the system over a network or other mechanism for transferring information in a conventional manner.

[0199] The foregoing description has been limited to a specific embodiment of this invention. It will be apparent, however, that various variations and modifications may be made to the invention, with the attainment of some or all of the advantages of the invention. It is the object of the appended claims to cover these and such other variations and modifications as come within the true spirit and scope of the invention. 

What is claimed as new and desired to be secured by Letters Patent of the United States is:
 1. An arrangement for generating a representation of a feature in a surface defined by a mesh representation, the mesh comprising at a selected level a plurality of points including at least one point connected to a plurality of neighboring points by respective edges, the feature being defined in connection with the vertex and at least one of the neighboring points and the edge interconnecting the vertex and the at least one of the neighboring points in the mesh representation, the feature generating arrangement comprising: A. a weight vector generator module configured to generate at least one weight vector based on a parameterized subdivision rule defined at a plurality of levels, for which a value of at least one parameter differs at at least two levels in the mesh; and B. a feature representation generator module configured to use the at least one weight vector and positions of the vertex and the neighboring points to generate the representation of the feature.
 2. An arrangement as defined in claim 1 in which weight vector generator module is configured to make use of values of the at least one parameter that differ at at least two levels are related by a selected mathematical function.
 3. An arrangement as defined in claim 1 in which the feature is a smooth feature line.
 4. An arrangement as defined in claim 3 in which the smooth feature line is defined in connection with the vertex and two neighboring points and edges interconnecting the vertex and the respective neighboring points, the weight vector generator module being configured to make use of parameterized subdivision rule having a parameter value associated with each of the edges along which the smooth feature line is defined.
 5. An arrangement as defined in claim 4 in which the weight vector generator module is configured to make use of parameters associated with the edges along which the smooth feature line is defined whose values are the same.
 6. An arrangement as defined in claim 5 in which the weight vector generator module is configured to make use of the parameters that are in relation to a subdivision rule that, in turn, reflects a sharp crease along the edges along which the smooth feature line is defined, the values of the parameters being defined in the interval [0,1], where higher values define a sharper crease, the values of the parameters at a lower level being related to the values of the parameters at a higher level being related by s(j+1)=(s(j))² where s(j) represents the values of the parameters at level “j” and s(j+1) represents the values of the parameters at the higher level “j+1.”
 7. An arrangement as defined in claim 4 in which the weight vector generator module is configured to make use of parameters associated with the edges along which the smooth feature line is defined whose values differ.
 8. An arrangement as defined in claim 7 in which the weight vector generator module is configured to make use of the parameters that are in relation to a subdivision rule that, in turn, reflects a sharp crease along the edges along which the smooth feature line is defined, the values of the parameters being defined in the interval [0,1], where higher values define a sharper crease, the values of the parameters at a lower level being related to the values of the parameters at a higher level being related by ${{s_{1}\left( {j + 1} \right)} = \left( {{\frac{3}{4}{s_{1}(j)}} + {\frac{1}{4}{s_{2}(j)}}} \right)^{2}},{and}$ ${s_{2}\left( {j + 1} \right)} = \left( {{\frac{1}{4}{s_{1}(j)}} + {\frac{3}{4}{s_{2}(j)}}} \right)^{2}$

where s₁(j) and s₂(j) represent the values of the parameters associated with the respective edges at level “j,” and s₁(j+1) and s₂(j+1) represent the values of the parameters associated with the respective edges at the higher level “j+1.”
 9. An arrangement as defined in claim 4 in which the mesh comprises a triangular mesh in which, at a selected level “j,” vertex v_(q)(0) is at position c^(j)(0) and neighboring points v_(q)(k), k=1, . . . ,K are at respective positions c^(j)(k), and in which the weight vector generator module is configured to make use of a parameterized subdivision rule S_(sc,T,K,L) that relates the position c^(j+1)(0) of the vertex v_(q)(0) and positions c^(j+1)(k) of neighboring points v_(q)(k) at the next higher level “j+1” as follows c ^(j+1) =S _(sc,T,K,L) c ^(j) where subdivision rule S_(sc,T,K,L) is given by $\left( {S_{{sc},T,K,L}\left( {s_{1},s_{2}} \right)} \right)_{l,m} = \left\{ {\begin{matrix} {\quad {{\left( {1 - s_{3}} \right)\left( {1 - {a(K)}} \right)} + {\frac{3}{4}s_{3}}}} & {\quad {{{{if}\quad l} = 0},{m = 0}}} \\ {\quad {{\left( {1 - s_{3}} \right)\frac{a(K)}{K}} + {\frac{1}{8}s_{3}}}} & {\quad {{{{if}\quad l} = 0},{m = {{1\quad {or}\quad L} + 1}}}} \\ {\quad {\left( {1 - s_{3}} \right)\frac{a(K)}{K}}} & {\quad {{{{if}\quad l} = 0},{m = 2},\ldots \quad,L}} \\ \quad & {\quad {{{{or}\quad l} = 0},{m = {L + 2}},\ldots \quad,K}} \\ {\quad {\frac{3}{8} + {\frac{1}{8}s_{2}}}} & {\quad {{{{if}\quad l} = 1},{m = {0\quad {or}\quad 1}}}} \\ {\quad {\frac{3}{8} + {\frac{1}{8}s_{1}}}} & {\quad {{{{if}\quad l} = {L + 1}},{m = {{0\quad {or}\quad L} + 1}}}} \\ {\quad {\frac{1}{8}\left( {1 - s_{2}} \right)}} & {\quad {{{{if}\quad l} = 1},{m = {2\quad {or}\quad K}}}} \\ {\quad {\frac{1}{8}\left( {1 - s_{1}} \right)}} & {\quad {{{{if}\quad l} = {L + 1}},{m = {{L\quad {or}\quad L} + 2}}}} \\ {\quad \frac{3}{8}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {m = 2}},\ldots \quad,L}} \\ \quad & {\quad {{{{or}\quad l} = {m = {L + 2}}},\ldots \quad,K}} \\ {\quad \frac{1}{8}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,L,{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = K},{m = 1}}} \\ {\quad 0} & {\quad {otherwise}} \end{matrix},} \right.$

where the smooth feature line is defined in connection with the edges between respective points v_(q)(1) and v_(q)(L+1)(L+1≦K) and vertex v_(q)(0), s₁ is the parameter associated with the edge between point v_(q)(1) and vertex v_(q)(0), s₂ is the parameter associated with the edge between point v_(q)(L+1) and vertex ${v_{q}(0)},{s_{3} = {\frac{1}{2}\left( {s_{1} + s_{2}} \right)}},{{{and}\quad {a(K)}} = {\frac{5}{8} - {\left( \frac{3 + {2{\cos \left( \frac{2\pi}{K} \right)}}}{8} \right)^{2}.}}}$


10. An arrangement as defined in claim 9 in which the representation of the feature is defined by at least one limit point associated with the vertex, the feature representation generator module being configured to determine a position σ(q) of the limit point in accordance with ${{\sigma (q)} = {\sum\limits_{i = 0}^{K}{\left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(LP)(s₁,s₂) is a vector of limit point weight values defined by l _(LP)(s ₁ ,s ₂)=v _(LP) ·S _(sc,T,K,L,LP)(s ₁ ,s ₂) where ${{S_{{sc},T,K,L,{LP}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}{S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

where S_(sc,T,K,L)(s₁(j),s₂(j)) corresponds to S_(sc,T,K,L) for sharpness parameters corresponding to the “j-th ” level in the matrix product, where S_(sc,T,K,L,LP)(s₁,s₂) arguments s₁ and s₂ on the left-hand side refer to the sharpness parameters a definition level of the smooth feature line and the subscript “LP” refers to “Limit Point,” and ${v_{LP} = \left( {\frac{\omega (K)}{{\varpi (K)} + K},\frac{1}{{\varpi (K)} + K},\frac{1}{{\varpi (K)} + K},\ldots \quad,\frac{1}{{\varpi (K)} + K}} \right)}\quad,{where}$ ${\varpi (K)} = {\frac{3K}{8\quad {a(K)}}\quad.}$


11. An arrangement as defined in claim 10 in which the weight vector generator module is configured to generate an approximation for the limit point weight vector 1 _(LP) using a polynomial approximation methodology.
 12. An arrangement as defined in claim 11 in which the weight vector generator module is configured to generate the approximation for the limit point weight vector 1 _(LP) in accordance with the polynomial (l _(LP))_(l) ≈b _(i0) +b _(i1)(s ₁ +s ₂)+b _(i2)(s ₁ ² +s ₂ ²)+b _(i3) s ₁ s ₂ in a symmetric case, or the polynomial (l _(LP))_(l) ≈b _(l0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₂ ² +b _(l5) s ₁ s ₂ in an asymmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 13. An arrangement as defined in claim 12 in which weight vector generator module is configured to select values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos \quad \left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos \quad \left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)}\quad,$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 14. An arrangement as defined in claim 10 in which the weight vector generator module is configured to generate an approximation for the limit point weight vector 1 _(LP) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 15. An arrangement as defined in claim 14 in which the weight vector generator module is configured to perform the extrapolation approximation methodology such that M=3.
 16. An arrangement as defined in claim 15 in which the weight vector generator module is configured to generate the approximation for the limit point weight vector weight vector in accordance with ${l_{LP} \approx {\sum\limits_{J = 0}^{3}{b_{J}{l_{LP}(J)}}}}\quad,$

where “J” is a predetermined integer and where (l _(LP)(J)(s ₁ ,s ₂))_(m)=(S _(sc,T,K,L,LP)(J)(s ₁ ,s ₂))_(1,m) where ${{{{{S_{{sc},T,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}\quad:}\quad = {\prod\limits_{j = J}^{0}{S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}}\quad,}\quad$

with S _(sc,T,K,L,LP)(0)(s ₁ ,s ₂):=I _(K+1) where I_(K+1) is the “K+1” by “K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = \frac{131072}{120015}} \end{matrix}.$


17. An arrangement as defined in claim 9 in which the representation of the feature is defined by a tangent vector associated with the vertex, the tangent vector being along the smooth feature line, the feature representation generator module being configured to determine the tangent vector e_(C)(q) in accordance with ${{e_{C}(q)} = {\sum\limits_{i = 0}^{K}{\left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{J}(i)}}}}\quad,$

where 1 _(C)(s₁,s₂) is a vector of tangent vector weight values defined by ${l_{C} = {\lim\limits_{j->\infty}\frac{l_{C}(J)}{{l_{C}(J)}}}}\quad,$

where ${{v} = \sqrt{\sum\limits_{i}v_{i}^{2}}},$

that is, the Euclidean norm, and where ${{l_{C}(J)} = {\left( {0,1,0,\ldots \quad,{- 1},0,\ldots}\quad \right) \cdot {\prod\limits_{j = J}^{j_{D}}{S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}}}\quad,$

where two non-zero components of the row vector on the right hand side are a “one” at position “one” in the row vector, and a “negative one” at position ${\frac{K}{2} + 1},$

and where S_(sc,T,K,L)(s₁(j),s₂(j)) corresponds to S_(sc,T,K,L) for sharpness parameters corresponding to the “j-th” level in the matrix product.
 18. An arrangement as defined in claim 17 in which the weight vector generator module is configured to generate the tangent vector weight vector 1 _(C) using a polynomial approximation methodology.
 19. An arrangement as defined in claim 18 in which the weight vector generator module is configured to generate the approximation for the tangent vector weight vector 1 _(C) in accordance with the polynomial (l _(C))_(i) =b _(i0)(s ₁ −s ₂)+b _(i1)(s ₁ ² −s ₂ ²)+b _(i2)(s ₁ ³ −s ₂ ³)+b _(i3)(s ₁ ² s ₂ −s ₁ s ₂ ²) in the anti-symmetric case, or the polynomial (l _(C))_(l) ≈b _(i0) +b _(i1) s ₁ +b _(i2) s ₂ +b _(i3) s ₁ ² +b _(i4) s ₁ s ₂ +b _(i5) s ₂ ² +b _(l6) s ₁ ³ +b _(i7) s ₁ ² s ₂ +b _(i8) s ₁ s ₂ ² +b _(i9) s ₂ ³ in the non-symmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 20. An arrangement as defined in claim 19 in which weight vector generator module is configured to select values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 21. An arrangement as defined in claim 17 in which the weight vector generator module is configured to generate an approximation for the tangent vector weight vector 1 _(C) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 22. An arrangement as defined in claim 21 in which the weight vector generator module is configured to perform the extrapolation approximation methodology such that M=3.
 23. An arrangement as defined in claim 22 in which the weight vector generator module is configured to generate the approximation for the tangent vector weight vector 1 _(C) in accordance with ${l_{C} \approx {\sum\limits_{J = 0}^{3}{b_{J}{l_{C}(J)}}}},$

where “J” is a predetermined integer and where l _(C)(J)(s ₁ ,s ₂)=d(K)^(J) v _(C) ·S _(sc,T,K,L,LP)(J)(s ₁ ,s ₂) where vector v_(C) is given by ${v_{C} = \left( {0,{\cos \frac{2\pi (0)}{K}},{\cos \frac{2\pi (1)}{K}},\ldots \quad,{\cos \frac{2\pi \left( {K - 1} \right)}{K}}} \right)},$

dilation factor d(K) is given by ${{d(K)} = \frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \frac{2\pi}{K}}}},{and}$ ${{{S_{{sc},T,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}{S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,T,K,L,LP)(0)(s ₁ ,s ₂):=I _(K+1) where I_(K+1) is the “K+1” by “K+1” identity matrix, and where $b_{0} = \frac{- 135}{120015}$ $b_{1} = \frac{1270}{120015}$ $b_{2} = \frac{- 12192}{120015}$ $b_{3} = \frac{131072}{120015}$


24. An arrangement as defined in claim 9 in which the representation of the feature is defined by a tangent vector associated with the vertex, the tangent vector being across the smooth feature line, the feature representation generator module being configured to determine the tangent vector e_(C)(q) in accordance with ${{e_{s}(q)} = {\prod\limits_{i = 0}^{K}{\left( {l_{s}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(s)(s₁,s₂) is a vector of tangent vector weight values defined by ${l_{s} = {\lim\limits_{j\rightarrow\infty}\frac{l_{s}(J)}{{l_{s}(J)}}}},$

where ${{v} = \sqrt{\sum\limits_{i}v_{i}^{2}}},$

that is, the Euclidean norm, where ${{l_{S}(J)} = {\left( {0,{\sin \frac{2\pi (0)}{K}},{\sin \frac{2\pi (1)}{K}},\ldots \quad,{\sin \frac{2\pi \left( {K - 1} \right)}{K}}} \right) \cdot {\prod\limits_{j = J}^{j_{D}}{S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}}},$

where S_(sc,T,K,L)(s₁(j),s₂(j)) corresponds to S_(sc,T,K,L) for sharpness parameters corresponding to the “j-th ” level in the matrix product.
 25. An arrangement as defined in claim 24 in which the weight vector generator module is configured to generate the tangent vector weight vector 1 _(C) using a polynomial approximation methodology.
 26. An arrangement as defined in claim 25 in which the weight vector generator module is configured to generate the approximation for the tangent vector weight vector 1 _(S) in accordance with the polynomial (l _(S))_(l) =b _(l0)(s ₁ −s ₂)+b _(l1)(s ₁ ² −s ₂ ²)+b _(l2)(s ₁ ³ −s ₂ ³)+b _(l3)(s ₁ ² s ₂ −s ₁ s ₂ ²) in the anti-symmetric case $\left( {i = {{0\quad {or}\quad \frac{K}{4}} + 1}} \right),$

or the polynomial (l _(S))_(l) =b _(l0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₁ s ₂ +b _(l5) s ₂ ² +b _(i6) s ₁ ³ +b _(l7) s ₁ ² s ₂ +b _(l8) s ₁ s ₂ ² +b _(l9) s ₂ ³ in the non-symmetric case (“i” otherwise), in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 27. An arrangement as defined in claim 26 in which weight vector generator module is configured to select values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 28. An arrangement as defined in claim 23 in which the weight vector generator module is configured to generate an approximation for the tangent vector weight vector 1 _(S) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 29. An arrangement as defined in claim 28 in which the weight vector generator module is configured to perform the extrapolation approximation methodology such that M=3.
 30. An arrangement as defined in claim 29 in which the weight vector generator module is configured to generate the approximation for the limit point weight vector weight vector in accordance with ${l_{S} \approx {\sum\limits_{J = 0}^{3}\quad {b_{J}{l_{S}(J)}}}},$

where “J” is a predetermined integer and where l _(S)(J)(s ₁ ,s ₂)=d(K)^(J) v _(S) ·S _(sc,T,K,L,LP)(J)(s ₁ ,s ₂) where vector v_(S) is given by ${v_{S} = \left( {0,{\sin \frac{2{\pi (0)}}{K}},{\sin \frac{2{\pi (1)}}{K}},\ldots \quad,{\sin \frac{2{\pi \left( {K - 1} \right)}}{K}}} \right)},$

dilation factor d(K) is given by ${{d(K)} = \frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \frac{2\pi}{K}}}},{and}$ ${{{S_{{sc},T,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}\quad {S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,T,K,L,LP)(0)(s ₁ ,s ₂):=I _(K+1) where I_(K+1) is the “K+1” by “K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = {\frac{131072}{120015}.}} \end{matrix}$


31. An arrangement as defined in claim 4 in which the mesh comprises a quadrilateral mesh in which, at a selected level “j,” vertex v_(q)(0) is at position c^(j)(0) and neighboring points v_(q)(k),k=1, . . . ,2 K are at respective positions c^(j)(k), and in which the weight vector generator module is configured to make use of a parameterized subdivision rule S_(sc,Q,K,L) that relates the position c^(j+1)(0) of the vertex v_(q)(0) and positions c^(j+1)(k) of neighboring points v_(q)(k) at the next higher level “j+1” as follows c ^(j+1) =S _(sc,T,K,L) c ^(j) where subdivision rule S_(sc,Q,K,L) is given by $\left( {S_{{sc},Q,K,L}\left( {s_{1},s_{2}} \right)} \right)_{l,m} = \left\{ {\begin{matrix} {{\left( {1 - s_{3}} \right)\left( {1 - \frac{7}{4K}} \right)} + {\frac{3}{4}s_{3}}} & {\quad {{{{if}\quad l} = 0},{m = 0}}} \\ {\quad {{\left( {1 - s_{3}} \right)\left( \frac{3}{2K^{2}} \right)} + {\frac{1}{8}s_{3}}}} & {\quad {{{{if}\quad l} = 0},{m = {{1\quad {or}\quad L} + 1}}}} \\ {\quad {\left( {1 - s_{3}} \right)\left( \frac{3}{2K^{2}} \right)}} & {\quad {{{{if}\quad l} = 0},{m = 2},\ldots \quad,L}} \\ \quad & {{{{or}\quad l} = 0},{m = {L + 2}},\ldots \quad,K} \\ {\left( {1 - s_{3}} \right)\left( \frac{1}{4K^{2}} \right)} & {{{{if}\quad l} = 0},{m = {K + 1}},\ldots \quad,{2K}} \\ {\quad {{\frac{3}{8}\left( {1 - s_{2}} \right)} + {\frac{1}{2}s_{2}}}} & {\quad {{{{if}\quad l} = 1},{m = {0\quad {or}\quad 1}}}} \\ {\quad {\frac{1}{16}\left( {1 - s_{2}} \right)}} & {\quad {{{{if}\quad l} = {L + 1}},{m = 2},K,}} \\ \quad & {\quad {K + {1\quad {or}\quad 2K}}} \\ {\quad {{\frac{3}{8}\left( {1 - s_{1}} \right)} + {\frac{1}{2}s_{1}}}} & {\quad {{{{if}\quad l} = {L + 1}},{m = {{0\quad {or}\quad L} + 1}}}} \\ {\quad {\frac{1}{16}\left( {1 - s_{1}} \right)}} & {\quad {{{{if}\quad l} = {L + 1}},{m = L},{L + 2},}} \\ \quad & {\quad {K + {1\quad {or}\quad K} + L + 1}} \\ {\quad \frac{3}{8}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {m = 2}},\ldots \quad,L}} \\ \quad & {\quad {{{{or}\quad l} = {m = {L + 2}}},{\ldots \quad K}}} \\ {\quad \frac{1}{16}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,L,{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,L,{m = {K + l - 1}}}} \\ \quad & {{{{or}\quad l} = 2},\ldots \quad,L,{m = {K + l}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {l - 1}}}} \\ \quad & {{{{or}\quad l} = {L + 2}},\ldots \quad,{K - 1},{m = {l + 1}}} \\ \quad & {\quad {{{{or}\quad l} = K},{m = 1}}} \\ \quad & {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {K + l - 1}}} \\ \quad & {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {K + l}}} \\ \frac{1}{4} & {{{{if}\quad l} = {K + 1}},\ldots \quad,{{2K} - 1},{m = 0},} \\ \quad & {\quad {{l - K},{l - K + {1\quad {or}\quad l}}}} \\ \quad & {{{{or}\quad l} = {2K}},{m = 0},K,{1\quad {or}\quad 2K}} \\ {\quad 0} & {\quad {otherwise}} \end{matrix},} \right.$

where the smooth feature line is defined in connection with the edges between respective points v_(q)(1) and v_(q)(L+1) (L+1≦2K) and vertex v_(q)(0), s₁ is the parameter associated with the edge between point v_(q)(1) and vertex v_(q)(0), s₂ is the parameter associated with the edge between point v_(q)(L+1) and vertex ${v_{q}(0)},{{{and}\quad s_{3}} = {\frac{1}{2}{\left( {s_{1} + s_{2}} \right).}}}$


32. An arrangement as defined in claim 31 in which the representation of the feature is defined by at least one limit point associated with the vertex, the feature representation generator module being configured to determine a position σ(q) of the limit point in accordance with ${{\sigma (q)} = {\sum\limits_{i = 0}^{2K}\quad {\left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(LP)(s₁,s₂) is a vector of limit point weight values defined by l _(LP)(s ₁ ,s ₂)=v _(LP) ·S _(sc,Q,K,L,LP)(s ₁ ,s ₂) where ${\left( {S_{{sc},Q,K,L,{LP}}\left( {s_{1},s_{2}} \right)} \right) = {\prod\limits_{j = \infty}^{j_{D}}\quad {S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

where S_(sc,Q,K,L)(s₁(j),s₂(j)) corresponds to S_(sc,Q,K,L) for sharpness parameters corresponding to the “j-th ” level in the matrix product, where S_(sc,Q,K,L,LP)(s₁,s₂) arguments s₁ and s₂ on the left-hand side refer to the sharpness parameters a definition level of the smooth feature line and the subscript “LP” refers to “Limit Point,” and $v_{LP} = {\frac{1}{K\left( {K + 5} \right)}{\left( {K^{2},4,\ldots \quad,4,1,\ldots \quad,1} \right).}}$


33. An arrangement as defined in claim 32 in which the weight vector generator module is configured to generate an approximation for the limit point weight vector 1 _(LP) using a polynomial approximation methodology.
 34. An arrangement as defined in claim 33 in which the weight vector generator module is configured to generate the approximation for the limit point weight vector 1 _(LP) in accordance with the polynomial (l _(LP))_(l) ≈b _(l0) +b _(l1)(s ₁ +s ₂)+b _(l2)(s ₁ ² +s ₂ ²)+b _(i3) s ₁ s ₂ in a symmetric case, or the polynomial (l _(LP))_(l) ≈b _(l0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₁ s ₂ +b _(l5) s ₂ ² in an asymmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 35. An arrangement as defined in claim 34 in which weight vector generator module is configured to select values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 36. An arrangement as defined in claim 32 in which the weight vector generator module is configured to generate an approximation for the limit point weight vector 1 _(LP) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 37. An arrangement as defined in claim 36 in which the weight vector generator module is configured to perform the extrapolation approximation methodology such that M=3.
 38. An arrangement as defined in claim 37 in which the weight vector generator module is configured to generate the approxiation for the limit point weight vector weight vector in accordance with ${l_{LP} \approx {\sum\limits_{J = 0}^{3}\quad {b_{J}{l_{LP}(J)}}}},$

where “J” is a predetermined integer and where (l _(LP)(J)(s ₁ ,s ₂))_(m)=(S _(sc,Q,K,L,LP)(J)(s ₁ ,s ₂))_(1,m) where ${{{S_{{sc},Q,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}\quad {S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,Q,K,L,LP)(0)(s ₁ ,s ₂):=I _(2K+1) where I_(2K+1) is the “2K+1” by “2K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = {\frac{131072}{120015}.}} \end{matrix}$


39. An arrangement as defined in claim 31 in which the representation of the feature is defined by a tangent vector associated with the vertex, the tangent vector being along the smooth feature line, the feature representation generator module being configured to determine the tangent vector e_(C)(q) in accordance with ${{e_{C}(q)} = {\sum\limits_{i = 0}^{2K}\quad {\left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{J}(i)}}}},$

where 1 _(C)(s₁,s₂) is a vector of tangent vector weight values defined by l _(C)(s ₁ ,s ₂)=d(K)^(K) v _(c) ·S _(sc,Q,K,L,LP)(s ₁(j),s ₂(j)) where ${{S_{{sc},Q,K,L,{LP}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}\quad {S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

and vector v_(c) is defined as $\left( v_{c} \right)_{i} = \left\{ {\begin{matrix} {\quad 0} & {\quad {{{if}\quad i} = 0}} \\ {\quad {A_{k}\cos \frac{2{\pi \left( {i - 1} \right)}}{K}}} & {\quad {{{{if}\quad i} = 1},\ldots \quad,K}} \\ {{\cos \frac{2{\pi \left( {i - K - 1} \right)}}{K}} + {\cos \frac{2{\pi \left( {i - K} \right)}}{K}}} & {{{{if}\quad i} = {K + 1}},\ldots \quad,{2K}} \end{matrix},{{{where}A_{K}} = {1 + {\cos \left( \frac{2\pi}{K} \right)} + {{\cos \left( \frac{\pi}{K} \right)}\sqrt{2\left( {9 + {\cos \frac{2\pi}{K}}} \right)}}}},} \right.$

and where dilation factor d(K) is given by ${d(K)} = {\frac{1}{\frac{A_{K}}{16} + \frac{1}{4}}.}$


40. An arrangement as defined in claim 39 in which the weight vector generator module is configured to generate the tangent vector weight vector 1 _(C) using a polynomial approximation methodology.
 41. An arrangement as defined in claim 40 in which the weight vector generator module is configured to generate the approximation for the tangent vector weight vector by in accordance with the polynomial (l _(C))_(l) ≈b _(l0)(s₁ −s ₂)+b _(l1)(s ₁ ² −s ₂ ²)+b _(l2)(s ₁ ³ −s ₂ ³)+b _(l3)(s₁ ² s ₂ −s ₁ s ₂ ²) in the anti-symmetric case, or the polynomial (l _(C))_(l) ≈b _(l0) +b _(i1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₁ s ₂ +b _(l5) s ₂ ² +b _(l6) s ₂ ³ +b _(l7) s ₁ ² s ₂ +b _(l8) s ₁ s ₂ ² +b _(l9) s ₂ ³ in the non-symmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 42. An arrangement as defined in claim 41 in which weight vector generator module is configured to select values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 43. An arrangement as defined in claim 39 in which the weight vector generator module is configured to generate an approximation for the tangent vector weight vector 1 _(C) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)},J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 44. An arrangement as defined in claim 43 in which the weight vector generator module is configured to perform the extrapolation approximation methodology such that M=3.
 45. An arrangement as defined in claim 44 in which the weight vector generator module is configured to generate the approximation for the tangent vector weight vector 1 _(C) in accordance with ${l_{C} \approx {\sum\limits_{J = 0}^{3}\quad {b_{J}{l_{C}(J)}}}},$

where “J” is a predetermined integer and where l _(C)(J)(s ₁ ,s ₂)=d(K)^(J) v _(C) ·S _(sc,Q,K,L,LP)(J)(s ₁ ,s ₂) where vector v_(C) is given by ${v_{C} = \left( {0,{\cos \frac{2{\pi (0)}}{K}},{\cos \frac{2{\pi (1)}}{K}},\ldots \quad,{\cos \frac{2{\pi \left( {K - 1} \right)}}{K}}} \right)},$

dilation factor d(K) is given by ${{d(K)} = \frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \frac{2\pi}{K}}}},{and}$ ${{{S_{{sc},Q,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}\quad {S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,Q,K,L,LP)(0)(s ₁ ,s ₂):=I _(2K+1) where I_(K+1) is the “2K+1” by “2K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = {\frac{131072}{120015}.}} \end{matrix}$


46. An arrangement as defined in claim 31 in which the representation of the feature is defined by a tangent vector associated with the vertex, the tangent vector being across the smooth feature line, the feature representation generator module being configured to determine the tangent vector e_(C)(q) in accordance with ${{e_{S}(q)} = {\sum\limits_{i = 0}^{2K}\quad {\left( {l_{S}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(C)(s₁,s₂) is a vector of tangent vector weight values defined by l _(s)(s ₁ ,s ₂)=d(K)^(K) v _(s) ·S _(sc,Q,K,L,LP)(s ₁(j),s ₂(j)) where ${{S_{{sc},Q,K,L,{LP}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}\quad {S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

and vector v_(C) is defined as $\left( v_{S} \right)_{i} = \left\{ {\begin{matrix} {\quad 0} & {\quad {{{if}\quad i} = 0}} \\ {\quad {A_{k}\sin 2\frac{\pi \left( {i - 1} \right)}{K}}} & {\quad {{{{if}\quad i} = 1},\ldots \quad,K}} \\ {{\sin 2\frac{\pi \left( {i - K - 1} \right)}{K}} + {\sin 2\frac{\pi \left( {i - K} \right)}{K}}} & {{{{if}\quad i} = {K + 1}},\ldots \quad,{2K}} \end{matrix},{{{where}A_{K}} = {1 + {\cos \left( \frac{2\pi}{K} \right)} + {{\cos \left( \frac{\pi}{K} \right)}\sqrt{2\left( {9 + {\cos 2\frac{\pi}{K}}} \right)}}}},} \right.$

and where dilation factor d(K) is given by ${d(K)} = {\frac{1}{\frac{A_{K}}{16} + \frac{1}{4}}.}$


47. An arrangement as defined in claim 46 in which the weight vector generator module is configured to generate the tangent vector weight vector 1 _(C) using a polynomial approximation methodology.
 48. An arrangement as defined in claim 47 in which the weight vector generator module is configured to generate the approximation for the tangent vector weight vector 1 _(s) in accordance with the polynomial (l _(s))_(l) =b _(l0)(s ₁ −s ₂)+b _(l1)(s ₁ ² −s ₂ ²)+b _(l2)(s ₁ ³ −s ₂ ³)+b _(l3)(s₁ ² s ₂ −s ₁ s ₂ ²) in the anti-symmetric case, or the polynomial (l _(S))_(l) b _(l0) +b _(i1) s ₁ +b _(i2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₁ s ₂ +b _(l5) s ₂ ² +b _(l6) s ₁ ³ +b _(i7) s ₁ ² s ₂ +b _(l8) s ₁ s ₂ ² +b _(l9) s ₂ ³ in the non-symmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 49. An arrangement as defined in claim 48 in which weight vector generator module is configured to select values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices ij=0, . . . ,N-1.
 50. An arrangement as defined in claim 46 in which the weight vector generator module is configured to generate an approximation for the tangent vector weight vector 1 _(S) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 51. An arrangement as defined in claim 50 in which the weight vector generator module is configured to perform the extrapolation approximation methodology such that M=3.
 52. An arrangement as defined in claim 51 in which the weight vector generator module is configured to generate the approximation for the limit point weight vector weight vector in accordance with ${l_{S} \approx {\sum\limits_{J = 0}^{3}\quad {b_{J}{l_{S}(J)}}}},$

where “J” is a predetermined integer and where l _(S)(J)(s ₁ ,s ₂)=d(K)^(J) v _(S) ·S _(sc,Q,K,L,LP)(J)(s ₁ ,s ₂) where vector v_(s) is given by ${v_{S} = \left( {0,{\sin \frac{2{\pi (0)}}{K}},{\sin \frac{2{\pi (1)}}{K}},\ldots \quad,{\sin \frac{2{\pi \left( {K - 1} \right)}}{K}}} \right)},$

dilation factor d(K) is given by ${{d(K)} = \frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \frac{2\pi}{K}}}},{and}$ ${{{{S_{{sc},Q,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:}\quad = {\prod\limits_{j = J}^{0}{S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,Q,K,L,LP)(0)(s ₁ ,s ₂):=I _(2K+1) where I_(2K+1) is the “2K+1” by “2K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = \frac{131072}{120015}} \end{matrix}.$


53. A computer program product for use in connection with a computer to provide an arrangement for generating a representation of a feature in a surface defined by a mesh representation, the mesh comprising at a selected level a plurality of points including at least one point connected to a plurality of neighboring points by respective edges, the feature being defined in connection with the vertex and at least one of the neighboring points and the edge interconnecting the vertex and the at least one of the neighboring points in the mesh representation, the computer program product comprising: A. a weight vector generator module configured to enable the computer to generate at least one weight vector based on a parameterized subdivision rule defined at a plurality of levels, for which a value of at least one parameter differs at at least two levels in the mesh; and B. a feature representation generator module configured to enable the computer to use the at least one weight vector and positions of the vertex and the neighboring points to generate the representation of the feature.
 54. A computer program product as defined in claim 53 in which weight vector generator module is configured to enable the computer to make use of values of the at least one parameter that differ at at least two levels are related by a selected mathematical function.
 55. A computer program product as defined in claim 53 in which the feature is a smooth feature line.
 56. A computer program product as defined in claim 55 in which the smooth feature line is defined in connection with the vertex and two neighboring points and edges interconnecting the vertex and the respective neighboring points, the weight vector generator module being configured to enable the computer to make use of parameterized subdivision rule having a parameter value associated with each of the edges along which the smooth feature line is defined.
 57. A computer program product as defined in claim 56 in which the weight vector generator module is configured to enable the computer to make use of parameters associated with the edges along which the smooth feature line is defined whose values are the same.
 58. A computer program product as defined in claim 57 in which the weight vector generator module is configured to enable the computer to make use of the parameters that are in relation to a subdivision rule that, in turn, reflects a sharp crease along the edges along which the smooth feature line is defined, the values of the parameters being defined in the interval [0,1], where higher values define a sharper crease, the values of the parameters at a lower level being related to the values of the parameters at a higher level being related by s(j+1)=(s(j))² where s(j) represents the values of the parameters at level “j” and s(j+1) represents the values of the parameters at the higher level “j+1.”
 59. A computer program product as defined in claim 56 in which the weight vector generator module is configured to enable the computer to make use of parameters associated with the edges along which the smooth feature line is defined whose values differ.
 60. A computer program product as defined in claim 59 in which the weight vector generator module is configured to enable the computer to make use of the parameters that are in relation to a subdivision rule that, in turn, reflects a sharp crease along the edges along which the smooth feature line is defined, the values of the parameters being defined in the interval [0,1], where higher values define a sharper crease, the values of the parameters at a lower level being related to the values of the parameters at a higher level being related by ${{s_{1}\left( {j + 1} \right)} = \left( {{\frac{3}{4}{s_{1}(j)}} + {\frac{1}{4}{s_{2}(j)}}} \right)^{2}},{and}$ ${{s_{2}\left( {j + 1} \right)} = \left( {{\frac{1}{4}{s_{1}(j)}} + {\frac{3}{4}{s_{2}(j)}}} \right)^{2}},$

where s₁(j) and s₂(j) represent the values of the parameters associated with the respective edges at level “j,” and s₁(j+1) and s₂(j+1) represent the values of the parameters associated with the respective edges at the higher level “j+1.”
 61. A computer program product as defined in claim 56 in which the mesh comprises a triangular mesh in which, at a selected level “j,” vertex v_(q)(0) is at position c^(j)(0) and neighboring points v_(q)(k), k=1, . . . ,K are at respective positions c^(j)(k), and in which the weight vector generator module is configured to enable the computer to make use of a parameterized subdivision rule S_(sc,T,K,L) that relates the position c^(j+1)(0) of the vertex v_(q)(0) and positions c^(j+1)(k) of neighboring points v_(q)(k) at the next higher level “j+1” as follows c ^(j+1) =S _(sc,T,K,L) c ^(j) where subdivision rule S_(sc,T,K,L) is given by $\left( {S_{{sc},T,K,L}\left( {s_{1},s_{2}} \right)} \right)_{l,m} = \left\{ {\begin{matrix} {{\left( {1 - s_{3}} \right)\left( {1 - {a(K)}} \right)} + {\frac{3}{4}s_{3}}} & {{{{if}\quad l} = 0},{m = 0}} \\ {{\left( {1 - s_{3}} \right)\frac{a(K)}{K}} + {\frac{1}{8}s_{3}}} & {{{{if}\quad l} = 0},{m = {{1\quad {or}\quad L} + 1}}} \\ {\left( {1 - s_{3}} \right)\frac{a(K)}{K}} & {{{{if}\quad l} = 0},{m = 2},\ldots \quad,L} \\ \quad & {{{{or}\quad l} = 0},{m = {L + 2}},\ldots \quad,K} \\ {\frac{3}{8} + {\frac{1}{8}s_{2}}} & {{{{if}\quad l} = 1},{m = {0\quad {or}\quad 1}}} \\ {\frac{3}{8} + {\frac{1}{8}s_{1}}} & {{{{if}\quad l} = {L + 1}},{m = {{0\quad {or}\quad L} + 1}}} \\ {\frac{1}{8}\left( {1 - s_{2}} \right)} & {{{{if}\quad l} = 1},{m = {2\quad {or}\quad K}}} \\ {\frac{1}{8}\left( {1 - s_{1}} \right)} & {{{{if}\quad l} = {L + 1}},{m = {{L\quad {or}\quad L} + 2}}} \\ \frac{3}{8} & \quad \\ \quad & {{{{if}\quad l} = 2},\ldots \quad,L,{m = 0}} \\ \quad & {{{{or}\quad l} = {L + 2}},\ldots,K,{m = 0}} \\ \quad & {{{{or}\quad l} = {m = 2}},\ldots \quad,L} \\ \quad & {{{{or}\quad l} = {m = {L + 2}}},\ldots \quad,K} \\ \frac{1}{8} & {{{{if}\quad l} = 2},\ldots \quad,L,{m = {l - 1}}} \\ \quad & {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {l - 1}}} \\ \quad & {{{{or}\quad l} = 2},\ldots \quad,L,{m = {l + 1}}} \\ \quad & {{{{or}\quad l} = {L + 2}},\ldots,K,{m = {l + 1}}} \\ \quad & {{{{or}\quad l} = K},{m = 1}} \\ {\quad 0} & {otherwise} \end{matrix},} \right.$

where the smooth feature line is defined in connection with the edges between respective points v_(q)(1) and v_(q)(L+1) (L+1≦K) and vertex v_(q)(0), s₁ is the parameter associated with the edge between point v_(q)(1) and vertex v_(q)(0), s₂ is the parameter associated with the edge between point v_(q)(L+1) and vertex ${v_{q}(0)},{s_{3} = {\frac{1}{2}\left( {s_{1} + s_{2}} \right)}},{and}$ ${a(K)} = {\frac{5}{8} - {\left( \frac{3 + {2\quad {\cos \left( \frac{2\pi}{K} \right)}}}{8} \right)^{2}.}}$


62. A computer program product as defined in claim 61 in which the representation of the feature is defined by at least one limit point associated with the vertex, the feature representation generator module being configured to enable the computer to determine a position σ(q) of the limit point in accordance with ${{\sigma (q)} = {\sum\limits_{i = 0}^{K}{\left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(LP)(s₁,s₂) is a vector of limit point weight values defined by l _(LP)(s ₁ ,s ₂)=v _(LP) ·S _(sc,T,K,L,LP)(s ₁ ,s ₂) where ${{S_{{sc},T,K,L,{LP}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}{S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

where S_(sc,T,K,L)(s₁)(j),s₂(j)) corresponds to S_(sc,T,K,L) for sharpness parameters corresponding to the “j-th” level in the matrix product, where S_(sc,T,K,L,LP)(s₁,s₂) arguments s₁ and s₂ on the left-hand side refer to the sharpness parameters a definition level of the smooth feature line and the subscript “LP” refers to “Limit Point,” and ${v_{LP} = \left( {\frac{\omega (K)}{{\varpi (K)} + K},\frac{1}{{\varpi (K)} + K},\frac{1}{{\varpi (K)} + K},\ldots \quad,\frac{1}{{\varpi (K)} + K}} \right)},{where}$ ${\varpi (K)} = {\frac{3K}{8{a(K)}}.}$


63. A computer program product as defined in claim 62 in which the weight vector generator module is configured to enable the computer to generate an approximation for the limit point weight vector 1 _(LP) using a polynomial approximation methodology.
 64. A computer program product as defined in claim 63 in which the weight vector generator module is configured to enable the computer to generate the approximation for the limit point weight vector 1 _(LP) in accordance with the polynomial (l _(LP))_(l) ≈b _(i0) +b _(i1)(s₁ +s ₂)+b _(l2)(s₁ ² +s ₂ ²)+b _(i3) s ₁ s ₂ in a symmetric case, or the polynomial (l _(LP))_(l) ≈b _(l0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₂ ² +b _(l5) s ₁ s ₂ in an asymmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 65. A computer program product as defined in claim 64 in which weight vector generator module is configured to enable the computer to select values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 66. A computer program product as defined in claim 62 in which the weight vector generator module is configured to enable the computer to generate an approximation for the limit point weight vector 1 _(LP) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 67. A computer program product as defined in claim 66 in which the weight vector generator module is configured to enable the computer to perform the extrapolation approximation methodology such that M=3.
 68. A computer program product as defined in claim 67 in which the weight vector generator module is configured to enable the computer to generate the approximation for the limit point weight vector weight vector in accordance with ${l_{LP} \approx {\sum\limits_{J = 0}^{3}\quad {b_{J}{l_{LP}(J)}}}},$

where “J” is a predetermined integer and where (l _(LP)(J)(s ₁ ,s ₂))_(m)=(S _(sc,T,K,L,LP)(J)(s ₁ ,s ₂))_(1,m) where ${{{S_{{sc},T,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}\quad {S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,T,K,L,LP)(0)(s ₁ ,s ₂):=I _(K+1) where I_(K+1) is the “K+1” by “K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = \frac{131072}{120015}} \end{matrix}$


69. A computer program product as defined in claim 61 in which the representation of the feature is defined by a tangent vector associated with the vertex, the tangent vector being along the smooth feature line, the feature representation generator module being configured to enable the computer to determine the tangent vector e_(C)(q) in accordance with ${{e_{C}(q)} = {\sum\limits_{i = 0}^{K}\quad {\left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(c)(s₁,s₂) is a vector of tangent vector weight values defined by ${l_{C} = {\lim\limits_{j\rightarrow\infty}\frac{l_{C}(J)}{{l_{C}(J)}}}},$

where ${{v} = \sqrt{\sum\limits_{i}v_{i}^{2}}},$

that is, the Euclidean norm, and where ${{l_{C}(J)} = {\left( {0,1,0,\ldots \quad,{- 1},0,\ldots} \right) \cdot {\prod\limits_{j = J}^{j_{D}}\quad {S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}}},$

where two non-zero components of the row vector on the right hand side are a “one” at position “one” in the row vector, and a “negative one” at position {fraction (K/2)}+1, and where S_(sc,T,K,L)(s₁(j), s₂(j)) corresponds to S_(sc,T,K,L) for sharpness parameters corresponding to the “j-th” level in the matrix product.
 70. A computer program product as defined in claim 69 in which the weight vector generator module is configured to enable the computer to generate the tangent vector weight vector 1 _(C) using a polynomial approximation methodology.
 71. A computer program product as defined in claim 70 in which the weight vector generator module is configured to enable the computer to generate the approximation for the tangent vector weight vector 1 _(C) in accordance with the polynomial (l _(C))_(l) =b _(i0)(s ₁ −s ₂)+b _(i1)(s ₁ ² −s ₂ ²)+b _(l2)(s ₁ ³ −s ₂ ³)+b _(i3)(s ₁ ² s ₂ −s ₁ s ₂ ²) in the anti-symmetric case, or the polynomial (l _(C))_(i) =b _(l0) +b _(i1) s ₁ +b _(i2) s ₂ +b _(i3) s ₁ ² +b _(i4) s ₁ s ₂ +b _(i5) s ₂ ² +b _(i6) s ₁ ³ +b _(l7) s ₁ ² s ₂ +b _(l8) s ₁ s ₂ ² +b _(i9) s ₂ ³ in the non-symmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 72. A computer program product as defined in claim 71 in which weight vector generator module is configured to enable the computer to select values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 73. A computer program product as defined in claim 69 in which the weight vector generator module is configured to enable the computer to generate an approximation for the tangent vector weight vector 1 _(C) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)},J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 74. A computer program product as defined in claim 73 in which the weight vector generator module is configured to enable the computer to perform the extrapolation approximation methodology such that M=3.
 75. A computer program product as defined in claim 74 in which the weight vector generator module is configured to enable the computer to generate the approximation for the tangent vector weight vector 1 _(C) in accordance with ${l_{C} \approx {\sum\limits_{J = 0}^{3}\quad {b_{J}{l_{C}(J)}}}},$

where “J” is a predetermined integer and where l _(C)(J)(s ₁ ,s ₂)=d(K)^(J) v _(C) ·S _(sc,T,K,L,LP)(J)(s ₁ ,s ₂) where vector v_(C) is given by ${v_{C} = \left( {0,{\cos \frac{2{\pi (0)}}{K}},{\cos \frac{2{\pi (1)}}{K}},\ldots \quad,{\cos \frac{2{\pi \left( {K - 1} \right)}}{K}}} \right)},$

dilation factor d(K) is given by ${{d(K)} = \frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \frac{2\pi}{K}}}},{and}$ ${{{S_{{sc},T,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}\quad {S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,T,K,L,LP)(0)(s ₁ ,s ₂):=I _(K+1) where I_(K+1) is the “K+1” by “K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = {\frac{131072}{120015}.}} \end{matrix}$


76. A computer program product as defined in claim 61 in which the representation of the feature is defined by a tangent vector associated with the vertex, the tangent vector being across the smooth feature line, the feature representation generator module being configured to enable the computer to determine the tangent vector e_(C)(q) in accordance with ${{e_{S}(q)} = {\sum\limits_{i = 0}^{K}\quad {\left( {l_{S}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(s)(s₁,s₂) is a vector of tangent vector weight values defined by ${l_{S} = {\lim\limits_{j\rightarrow\infty}\frac{l_{S}(J)}{{l_{S}(J)}}}},$

where ${{v} = \sqrt{\sum\limits_{i}v_{i}^{2}}},$

that is, the Euclidean norm, where ${{l_{S}(J)} = {\left( {0,{\sin \frac{2{\pi (0)}}{K}},{\sin \frac{2{\pi (1)}}{K}},\ldots \quad,{\sin \frac{2{\pi \left( {K - 1} \right)}}{K}}} \right) \cdot {\prod\limits_{j = J}^{J_{D}}\quad {S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}}},$

where S_(sc,T,K,L)(s₁(j),s₂(j)) corresponds to S_(sc,T,K,L) for sharpness parameters corresponding to the “j-th” level in the matrix product.
 77. A computer program product as defined in claim 76 in which the weight vector generator module is configured to enable the computer to generate the tangent vector weight vector 1 _(C) using a polynomial approximation methodology.
 78. A computer program product as defined in claim 77 in which the weight vector generator module is configured to enable the computer to generate the approximation for the tangent vector weight vector 1 _(S) in accordance with the polynomial (l _(S))_(i) =b _(i0)(s ₁ −s ₂)+b _(i1)(s₁ ² −s ₂ ²)+b _(i2)(s ₁ ³ −s ₂ ³)+b _(i3)(s ₁ ² s ₂ −s ₁ s ₂ ²) in the anti-symmetric case, or the polynomial (l _(S))_(i) =b _(i0) +b _(i1) s ₁ +b _(i2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₁ s ₂ +b _(l5) s ₂ ² +b _(i6) s ₁ ³ +b _(i7) s ₁ ² s ₂ +b _(l8) s ₁ s ₂ ² +b _(i9) s ₂ ³ in the non-symmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 79. A computer program product as defined in claim 78 in which weight vector generator module is configured to enable the computer to select values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 80. A computer program product as defined in claim 75 in which the weight vector generator module is configured to enable the computer to generate an approximation for the tangent vector weight vector 1 _(S) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 81. A computer program product as defined in claim 80 in which the weight vector generator module is configured to enable the computer to perform the extrapolation approximation methodology such that M=3.
 82. A computer program product as defined in claim 81 in which the weight vector generator module is configured to enable the computer to generate the approximation for the limit point weight vector weight vector in accordance with ${l_{S} \approx {\sum\limits_{J = 0}^{3}\quad {b_{J}{l_{S}(J)}}}},$

where “J” is a predetermined integer and where l _(S)(J)(s ₁ ,s ₂)=d(K)^(J) v _(S) ·S _(sc,T,K,L,LP)(J)(s ₁ ,s ₂) where vector v_(S) is given by ${v_{S} = \left( {0,{\sin \frac{2{\pi (0)}}{K}},{\sin \frac{2{\pi (1)}}{K}},\ldots \quad,{\sin \frac{2{\pi \left( {K - 1} \right)}}{K}}} \right)},$

dilation factor d(K) is given by ${{d(K)} = \frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \frac{2\pi}{K}}}},{and}$ ${{{S_{{sc},T,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}\quad {S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,T,K,L,LP)(0)(s ₁ ,s ₂):=I _(K+1) where I_(K+1) is the “K+1” by “K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = {\frac{131072}{120015}.}} \end{matrix}$


83. A computer program product as defined in claim 56 in which the mesh comprises a quadrilateral mesh in which, at a selected level “j,” vertex v_(q)(0) is at position c^(j)(0) and neighboring points v_(q)(k) k=1, . . . ,2K are at respective positions c^(j)(k), and in which the weight vector generator module is configured to enable the computer to make use of a parameterized subdivision rule S_(sc,Q,K,L) that relates the position c^(j+1)(0) of the vertex v_(q)(0) and positions c^(j+1)(k) of neighboring points v_(q)(k) at the next higher level “j+1” as follows c ^(j+1) =S _(sc,T,K,L) c ^(j) where subdivision rule S_(sc,Q,K,L) is given by $\left( {S_{{sc},Q,K,L}\left( {s_{1},s_{2}} \right)} \right)_{l,m} = \left\{ {\begin{matrix} {{\left( {1 - s_{3}} \right)\left( {1 - \frac{7}{4K}} \right)} + {\frac{3}{4}s_{3}}} & {\quad {{{{if}\quad l} = 0},{m = 0}}} \\ {\quad {{\left( {1 - s_{3}} \right)\left( \frac{3}{2K^{2}} \right)} + {\frac{1}{8}s_{3}}}} & {\quad {{{{if}\quad l} = 0},{m = {{1\quad {or}\quad L} + 1}}}} \\ {\quad {\left( {1 - s_{3}} \right)\left( \frac{3}{2K^{2}} \right)}} & {\quad {{{{if}\quad l} = 0},{m = 2},\ldots \quad,L}} \\ \quad & {{{{or}\quad l} = 0},{m = {L + 2}},\ldots \quad,K} \\ {\left( {1 - s_{3}} \right)\left( \frac{1}{4K^{2}} \right)} & {{{{if}\quad l} = 0},{m = {K + 1}},\ldots \quad,{2K}} \\ {\quad {{\frac{3}{8}\left( {1 - s_{2}} \right)} + {\frac{1}{2}s_{2}}}} & {\quad {{{{if}\quad l} = 1},{m = {0\quad {or}\quad 1}}}} \\ {\quad {\frac{1}{16}\left( {1 - s_{2}} \right)}} & {\quad {{{{if}\quad l} = {L + 1}},{m = 2},K,}} \\ \quad & {\quad {K + {1\quad {or}\quad 2K}}} \\ {\quad {{\frac{3}{8}\left( {1 - s_{1}} \right)} + {\frac{1}{2}s_{1}}}} & {\quad {{{{if}\quad l} = {L + 1}},{m = {{0\quad {or}\quad L} + 1}}}} \\ {\quad {\frac{1}{16}\left( {1 - s_{1}} \right)}} & {\quad {{{{if}\quad l} = {L + 1}},{m = L},{L + 2},}} \\ \quad & {\quad {K + {1\quad {or}\quad K} + L + 1}} \\ {\quad \frac{3}{8}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {m = 2}},\ldots \quad,L}} \\ \quad & {\quad {{{{or}\quad l} = {m = {L + 2}}},{\ldots \quad K}}} \\ {\quad \frac{1}{16}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,L,{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,L,{m = {K + l - 1}}}} \\ \quad & {{{{or}\quad l} = 2},\ldots \quad,L,{m = {K + l}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {l - 1}}}} \\ \quad & {{{{or}\quad l} = {L + 2}},\ldots \quad,{K - 1},{m = {l + 1}}} \\ \quad & {\quad {{{{or}\quad l} = K},{m = 1}}} \\ \quad & {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {K + l - 1}}} \\ \quad & {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {K + l}}} \\ \frac{1}{4} & {{{{if}\quad l} = {K + 1}},\ldots \quad,{{2K} - 1},{m = 0},} \\ \quad & {\quad {{l - K},{l - K + {1\quad {or}\quad l}}}} \\ \quad & {{{{or}\quad l} = {2K}},{m = 0},K,{1\quad {or}\quad 2K}} \\ {\quad 0} & {\quad {otherwise}} \end{matrix},} \right.$

where the smooth feature line is defined in connection with the edges between respective points v_(q)(1) and v_(q)(L+1) (L+1≦2K) and vertex v_(q)(0), s₁ is the parameter associated with the edge between point v_(q)(1) and vertex v_(q)(0), s₂ is the parameter associated with the edge between point v_(q)(L+1) and vertex ${v_{q}(0)},{{{and}\quad s_{3}} = {\frac{1}{2}{\left( {s_{1} + s_{2}} \right).}}}$


84. A computer program product as defined in claim 83 in which the representation of the feature is defined by at least one limit point associated with the vertex, the feature representation generator module being configured to enable the computer to determine a position σ(q) of the limit point in accordance with ${{\sigma (q)} = {\sum\limits_{i = 0}^{2K}\quad {\left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(LP)(s₁,s₂) is a vector of limit point weight values defined by l _(LP)(s ₁ ,s ₂)=v _(LP) ·S _(sc,Q,K,L,LP)(s ₁ ,s ₂) where ${{S_{{sc},Q,K,L,{LP}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}\quad {S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

where S_(sc,Q,K,L)(s₁(j),s₂(j)) corresponds to S_(sc,Q,K,L) for sharpness parameters corresponding to the “j-th” level in the matrix product, where S_(sc,Q,K,L,LP)(s₁,s₂) arguments s₁ and s₂ on the left-hand side refer to the sharpness parameters a definition level of the smooth feature line and the subscript “LP” refers to “Limit Point,” and $v_{LP} = {\frac{1}{K\left( {K + 5} \right)}\left( {K^{2},4,\ldots \quad,4,1,\ldots \quad,1} \right)}$


85. A computer program product as defined in claim 84 in which the weight vector generator module is configured to enable the computer to generate an approximation for the limit point weight vector 1 _(LP) using a polynomial approximation methodology.
 86. A computer program product as defined in claim 85 in which the weight vector generator module is configured to enable the computer to generate the approximation for the limit point weight vector 1 _(LP) in accordance with the polynomial (l _(LP))_(l) ≈b _(l0) +b _(l1)(s ₁ +s ₂)+b _(l2)(s₁ ² +s ₂ ²)+b _(l3) s ₁ s ₂ in a symmetric case, or the polynomial (l _(LP))_(l) ≈b _(l0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(i4) s ₁ s ₂ +b _(l5) s ₂ ² in an asymmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 87. A computer program product as defined in claim 86 in which weight vector generator module is configured to enable the computer to select values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 88. A computer program product as defined in claim 84 in which the weight vector generator module is configured to enable the computer to generate an approximation for the limit point weight vector 1 _(LP) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . , M and then evaluating this polynomial by extrapolation at the point x=0.
 89. A computer program product as defined in claim 88 in which the weight vector generator module is configured to enable the computer to perform the extrapolation approximation methodology such that M=3.
 90. A computer program product as defined in claim 89 in which the weight vector generator module is configured to enable the computer to generate the approxiation for the limit point weight vector weight vector in accordance with ${l_{LP} \approx {\sum\limits_{J = 0}^{3}\quad {b_{J}{l_{LP}(J)}}}},$

where “J” is a predetermined integer and where (l _(LP)(J)(s ₁ ,s ₂))_(m)=(S _(sc,Q,K,L,LP)(J)(s ₁ ,s ₂))_(1,m) where ${{{S_{{sc},Q,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}\quad {S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,Q,K,L,LP)(0)(s ₁ ,s ₂):=I _(2K+1) where I_(2K+1) is the “2K+1” by “2K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = {\frac{131072}{120015}.}} \end{matrix}$


91. A computer program product as defined in claim 83 in which the representation of the feature is defined by a tangent vector associated with the vertex, the tangent vector being along the smooth feature line, the feature representation generator module being configured to enable the computer to determine the tangent vector e_(C)(q) in accordance with ${{e_{C}(q)} = {\sum\limits_{i = 0}^{2K}{\left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(C)(s₁,s₂) is a vector of tangent vector weight values defined by l _(C)(s ₁ ,s ₂)=d(K)^(K) v _(c) ·S _(sc,Q,K,L,LP)(s ₁(j),s ₂(j)) where ${{S_{{s\quad c},Q,K,L,{L\quad P}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}{S_{{s\quad c},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

and vector v_(c) is defined as $\left( v_{c} \right)_{i} = \left\{ {\begin{matrix} {\quad 0} & {\quad {{{if}\quad i} = 0}} \\ {\quad {A_{k}\cos 2\frac{\pi \left( {i - 1} \right)}{K}}} & {\quad {{{{if}\quad i} = 1},\ldots \quad,K}} \\ {\quad {{\cos 2\frac{\pi \left( {i - K - 1} \right)}{K}} + {\cos 2\frac{\pi \left( {i - K} \right)}{K}}}} & {\quad {{{{if}\quad i} = {K + 1}},\ldots \quad,{2K}}} \end{matrix},} \right.$

where ${A_{K} = {1 + {\cos \left( \frac{2\pi}{K} \right)} + {{\cos \left( \frac{\pi}{K} \right)}\sqrt{2\left( {9 + {\cos \frac{2\pi}{K}}} \right)}}}},$

and where dilation factor d(K) is given by ${d(K)} = {\frac{1}{\frac{A_{K}}{16} + \frac{1}{4}}.}$


92. A computer program product as defined in claim 91 in which the weight vector generator module is configured to enable the computer to generate the tangent vector weight vector 1 _(C) using a polynomial approximation methodology.
 93. A computer program product as defined in claim 92 in which the weight vector generator module is configured to enable the computer to generate the approximation for the tangent vector weight vector 1 _(C) in accordance with the polynomial (l _(C))_(l) ≈b _(l0)(s ₁ −s ₂)+b _(l1)(s ₁ ² −s ₂ ²)−b _(l2)(s ₁ ³ −s ₂ ³)+b _(l3)(s ₁ ² s ₂ −s ₁ s ₂ ²) in the anti-symmetric case, or the polynomial (l _(C))_(l) ≈b _(l0) +b _(l1) s ₁ +b _(i2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₁ s ₂ +b _(l5) s ₂ ² +b _(i6) s ₁ ³ +b _(l7) s ₁ ² s ₂ +b _(i8) s ₁ s ₂ ² +b _(l9) s ₂ ³ in the non-symmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 94. A computer program product as defined in claim 93 in which weight vector generator module is configured to enable the computer to select values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . , N-1.
 95. A computer program product as defined in claim 91 in which the weight vector generator module is configured to enable the computer to generate an approximation for the tangent vector weight vector 1 _(C) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 96. A computer program product as defined in claim 95 in which the weight vector generator module is configured to enable the computer to perform the extrapolation approximation methodology such that M=3.
 97. A computer program product as defined in claim 96 in which the weight vector generator module is configured to enable the computer to generate the approximation for the tangent vector weight vector 1 _(C) in accordance with ${l_{C} \approx {\sum\limits_{J = 0}^{3}{b_{J}{l_{C}(J)}}}},$

where “J” is a predetermined integer and where l _(C)(J)(s ₁ ,s ₂)=d(K)^(J) v _(C) ·S _(sc,Q,K,L,LP)(J)(s ₁ ,s ₂) where vector v_(C) is given by ${v_{C} = \left( {0,{\cos \frac{2{\pi (0)}}{K}},{\cos \frac{2{\pi (1)}}{K}},\ldots \quad,{\cos \frac{2{\pi \left( {K - 1} \right)}}{K}}} \right)},$

dilation factor d(K) is given by ${{d(K)} = \frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \frac{2\pi}{K}}}},$

and ${{{S_{{s\quad c},Q,K,L,{L\quad P}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}{S_{{s\quad c},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,Q,K,L,LP)(0)(s ₁ ,s ₂):=I _(2K+1) where I_(K+1) is the “2K+1” by “2K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = \frac{131072}{120015}} \end{matrix}.$


98. A computer program product as defined in claim 83 in which the representation of the feature is defined by a tangent vector associated with the vertex, the tangent vector being across the smooth feature line, the feature representation generator module being configured to enable the computer to determine the tangent vector e_(C)(q) in accordance with ${{e_{S}(q)} = {\sum\limits_{i = 0}^{2K}{\left( {l_{S}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(C)(s₁,s₂) is a vector of tangent vector weight values defined by l _(S)(s ₁ ,s ₂)=d(K)^(K) v _(S) ·S _(sc,Q,K,L,LP)(s ₁(j),s ₂(j)) where ${{S_{{sc},Q,K,L,{LP}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}{S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

and vector v_(C) is defined as $\left( v_{S} \right)_{i} = \left\{ {\begin{matrix} {\quad 0} & {\quad {{{if}\quad i} = 0}} \\ {\quad {A_{k}\sin \frac{2{\pi \left( {i - 1} \right)}}{K}}} & {\quad {{{{if}\quad i} = 1},\ldots \quad,K}} \\ {\quad {{\sin \frac{2{\pi \left( {i - K - 1} \right)}}{K}} + {\sin \frac{2{\pi \left( {i - K} \right)}}{K}}}} & {\quad {{{{if}\quad i} = {K + 1}},\ldots \quad,{2K}}} \end{matrix},{{{where}A_{K}} = {1 + {\cos \left( \frac{2\pi}{K} \right)} + {{\cos \left( \frac{\pi}{K} \right)}\sqrt{2\left( {9 + {\cos \frac{2\pi}{K}}} \right)}}}},} \right.$

and where dilation factor d(K) is given by ${d(K)} = {\frac{1}{\frac{A_{K}}{16} + \frac{1}{4}}.}$


99. A computer program product as defined in claim 98 in which the weight vector generator module is configured to enable the computer to generate the tangent vector weight vector 1 _(C) using a polynomial approximation methodology.
 100. A computer program product as defined in claim 99 in which the weight vector generator module is configured to enable the computer to generate the approximation for the tangent vector weight vector 1 _(S) in accordance with the polynomial (l _(S))=b _(l0)(s ₁ −s ₂)+b _(l1)(s ₁ ² −s ₂ ²)+b _(l2)(s ₁ ³ −s ₂ ³)+b _(i3)(s ₁ ² s ₂ −s ₁ s ₂ ²) in the anti-symmetric case, or the polynomial (l _(S))_(l) =b _(l0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₁ s ₂ +b _(l5) s ₂ ² +b _(l6) s ₁ ³ +b _(l7) s ₁ ² s ₂ +b _(l8) s ₁ s ₂ ² +b _(l9) s ₂ ³ in the non-symmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 101. A computer program product as defined in claim 100 in which weight vector generator module is configured to enable the computer to select values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 102. A computer program product as defined in claim 98 in which the weight vector generator module is configured to enable the computer to generate an approximation for the tangent vector weight vector is using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)},J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 103. A computer program product as defined in claim 102 in which the weight vector generator module is configured to enable the computer to perform the extrapolation approximation methodology such that M=3.
 104. A computer program product as defined in claim 103 in which the weight vector generator module is configured to enable the computer to generate the approximation for the limit point weight vector weight vector in accordance with ${l_{S} \approx {\sum\limits_{J = 0}^{3}{b_{J}{l_{S}(J)}}}},$

where “J” is a predetermined integer and where l _(S)(J)(s ₁ ,s ₂)=d(K)^(J) v _(S) ·S _(sc,Q,K,L,LP)(J)(s ₁ ,s ₂) where vector v_(S) is given by ${v_{S} = \left( {0,{\sin \frac{2{\pi (0)}}{K}},{\sin \frac{2{\pi (1)}}{K}},\ldots \quad,{\sin \frac{2{\pi \left( {K - 1} \right)}}{K}}} \right)},$

dilation factor d(K) is given by ${{d(K)} = \frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \frac{2\pi}{K}}}},{and}$ ${{{{S_{{sc},Q,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:}\quad = {\prod\limits_{j = J}^{0}{S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,Q,K,L,LP)(0)(s ₁ ,s ₂):=I _(2K+1) where I_(2K+1) is the “2K+1” by “2K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = \frac{131072}{120015}} \end{matrix}.$


105. A method for generating a representation of a feature in a surface defined by a mesh representation, the mesh comprising at a selected level a plurality of points including at least one point connected to a plurality of neighboring points by respective edges, the feature being defined in connection with the vertex and at least one of the neighboring points and the edge interconnecting the vertex and the at least one of the neighboring points in the mesh representation, the method comprising: A. a weight vector generator step configured to generate at least one weight vector based on a parameterized subdivision rule defined at a plurality of levels, for which a value of at least one parameter differs at at least two levels in the mesh; and B. a feature representation generator step configured to use the at least one weight vector and positions of the vertex and the neighboring points to generate the representation of the feature.
 106. A method as defined in claim 105 in which weight vector generator step includes the step of making use of values of the at least one parameter that differ at at least two levels are related by a selected mathematical function.
 107. A method as defined in claim 105 in which the feature is a smooth feature line.
 108. A method as defined in claim 107 in which the smooth feature line is defined in connection with the vertex and two neighboring points and edges interconnecting the vertex and the respective neighboring points, the weight vector generator step includes the step of making use of parameterized subdivision rule having a parameter value associated with each of the edges along which the smooth feature line is defined.
 109. A method as defined in claim 108 in which the weight vector generator step includes the step of making use of parameters associated with the edges along which the smooth feature line is defined whose values are the same.
 110. A method as defined in claim 109 in which the weight vector generator step includes the step of making use of the parameters that are in relation to a subdivision rule that, in turn, reflects a sharp crease along the edges along which the smooth feature line is defined, the values of the parameters being defined in the interval [0,1], where higher values define a sharper crease, the values of the parameters at a lower level being related to the values of the parameters at a higher level being related by s(j+1)=(s(j))² where s(j) represents the values of the parameters at level “j” and s(j+1) represents the values of the parameters at the higher level “j+1.”
 111. A method as defined in claim 108 in which the weight vector generator step includes the step of making use of parameters associated with the edges along which the smooth feature line is defined whose values differ.
 112. A method as defined in claim 111 in which the weight vector generator step includes the step of making use of the parameters that are in relation to a subdivision rule that, in turn, reflects a sharp crease along the edges along which the smooth feature line is defined, the values of the parameters being defined in the interval [0,1], where higher values define a sharper crease, the values of the parameters at a lower level being related to the values of the parameters at a higher level being related by ${{{s_{1}\left( {j + 1} \right)} = \left( {{\frac{3}{4}{s_{1}(j)}} + {\frac{1}{4}{s_{2}(j)}}} \right)^{2}},\quad {and}}\quad$ ${{s_{2}\left( {j + 1} \right)} = \left( {{\frac{1}{4}{s_{1}(j)}} + {\frac{3}{4}{s_{2}(j)}}} \right)^{2}},$

where s₁(j) and s₂(j) represent the values of the parameters associated with the respective edges at level “j,” and s₁(j+1) and s₂(j+1) represent the values of the parameters associated with the respective edges at the higher level “j+1.”
 113. A method as defined in claim 108 in which the mesh comprises a triangular mesh in which, at a selected level “j,” vertex v_(q)(0) is at position c^(j)(0) and neighboring points v_(q)(k), k=1, . . . , K are at respective positions c^(j)(k), and in which the weight vector generator step includes the step of making use of a parameterized subdivision rule S_(sc,T,K,L) that relates the position c^(j+1)(0) of the vertex v_(q)(0) and positions c^(j+1)(k) of neighboring points v_(q)(k) at the next higher level “j+1” as follows c ^(j+1) =S _(sc,T,K,L) c ^(j) where subdivision rule S_(sc,T,K,L) is given by $\left( {S_{{sc},T,K,L}\left( {s_{1},s_{2}} \right)} \right)_{l,m} = \left\{ {\begin{matrix} {{\left( {1 - s_{3}} \right)\left( {1 - {a(K)}} \right)} + {\frac{3}{4}s_{3}}} & {\quad {{{{if}\quad l} = 0},{m = 0}}} \\ {\quad {{\left( {1 - s_{3}} \right)\frac{a(K)}{K}} + {\frac{1}{8}s_{3}}}} & {\quad {{{{if}\quad l} = 0},{m = {{1\quad {or}\quad L} + 1}}}} \\ {\quad {\left( {1 - s_{3}} \right)\frac{a(K)}{K}}} & {\quad {{{{if}\quad l} = 0},{m = 2},\ldots \quad,L}} \\ \quad & {{{{or}\quad l} = 0},{m = {L + 2}},\ldots \quad,K} \\ {\quad {\frac{3}{8} + {\frac{1}{8}s_{2}}}} & {\quad {{{{if}\quad l} = 1},{m = {0\quad {or}\quad 1}}}} \\ {\quad {\frac{3}{8} + {\frac{1}{8}s_{1}}}} & {\quad {{{{if}\quad l} = {L + 1}},{m = {{0\quad {or}\quad L} + 1}}}} \\ {\quad {\frac{1}{8}\left( {1 - s_{2}} \right)}} & {\quad {{{{if}\quad l} = 1},{m = {2\quad {or}\quad K}}}} \\ {\quad {\frac{1}{8}\left( {1 - s_{1}} \right)}} & {\quad {{{{if}\quad l} = {L + 1}},{m = {{L\quad {or}\quad L} + 2}}}} \\ {\quad \frac{3}{8}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {m = 2}},\ldots \quad,L}} \\ \quad & {\quad {{{{or}\quad l} = {m = {L + 2}}},\ldots \quad,K}} \\ {\quad \frac{1}{8}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,L,{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = K},{m = 1}}} \\ {\quad 0} & {\quad {otherwise}} \end{matrix},} \right.$

where the smooth feature line is defined in connection with the edges between respective points v_(q)(1) and v_(q)(L+1) (L+1≦K) and vertex v_(q)(0), s₁ is the parameter associated with the edge between point v_(q)(1) and vertex v_(q)(0), s₂ is the parameter associated with the edge between point v_(q)(L+1) and vertex ${v_{q}(0)},{s_{3} = {\frac{1}{2}\left( {s_{1} + s_{2}} \right)}},{{{and}\quad {a(K)}} = {\frac{5}{8} - {\left( \frac{3 + {2{\cos \left( \frac{2\pi}{K} \right)}}}{8} \right)^{2}.}}}$


114. A method as defined in claim 113 in which the representation of the feature is defined by at least one limit point associated with the vertex, the feature representation generator step includes the step of determining a position σ(q) of the limit point in accordance with ${{\sigma (q)} = {\sum\limits_{i = 0}^{K}\quad {\left( {l_{LP}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(LP)(s₁,s₂) is a vector of limit point weight values defined by l _(LP)(s ₁ ,s ₂)=v _(LP) ·S _(sc,T,K,L,LP)(s ₁ ,s ₂) where ${{S_{{sc},T,K,L,{LP}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}\quad {S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

where S_(sc,T,K,L)(s₁(j),s₂(j)) corresponds to S_(sc,T,K,L) for sharpness parameters corresponding to the “j-th ” level in the matrix product, where S_(sc,T,K,LP)(s₁,s₂) arguments s₁ and s₂ on the left-hand side refer to the sharpness parameters a definition level of the smooth feature line and the subscript “LP” refers to “Limit Point,” and ${v_{LP} = \left( {\frac{\omega (K)}{{\varpi (K)} + K},\frac{1}{{\varpi (K)} + K},\frac{1}{{\varpi (K)} + K},\ldots \quad,\frac{1}{{\varpi (K)} + K}} \right)},{where}$ ${\varpi (K)} = {\frac{3K}{8{a(K)}}.}$


115. A method as defined in claim 114 in which the weight vector generator step includes the step of generating an approximation for the limit point weight vector 1 _(LP) using a polynomial approximation methodology.
 116. A method as defined in claim 115 in which the weight vector generator step includes the step of generating the approximation for the limit point weight vector 1 _(LP) in accordance with the polynomial (l _(LP))_(i) ≈b _(i0) +b _(i1)(s ₁ +s ₂)+b _(i2)(s ₁ ² +s ₂ ²)+b _(l3) s ₁ s ₂ in a symmetric case, or the polynomial (l _(LP))_(l) ≈b _(l0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₂ ² +b _(l5) s ₁ s ₂ in an asymmetric case (“i” otherwise), in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 117. A method as defined in claim 116 in which weight vector generator step includes the step of selecting values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 118. A method as defined in claim 114 in which the weight vector generator step includes the step of generating an approximation for the limit point weight vector 1 _(LP) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 119. A method as defined in claim 118 in which the weight vector generator step includes the step of performing the extrapolation approximation methodology such that M=3.
 120. A method as defined in claim 119 in which the weight vector generator step includes the step of generating the approximation for the limit point weight vector weight vector in accordance with ${l_{LP} \approx {\sum\limits_{J = 0}^{3}\quad {b_{J}{l_{LP}(J)}}}},$

where “J” is a predetermined integer and where (l _(LP)(J)(s ₁ ,s ₂))_(m)=(S _(sc,T,K,L,LP)(J)(s ₁ ,s ₂))_(1,m) where ${{{S_{{sc},T,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}\quad {S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,T,K,L,LP)(0)(s ₁ ,s ₂):=I _(K+1) where I_(K+1) is the “K+1” by “K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = {\frac{131072}{120015}.}} \end{matrix}$


121. A method as defined in claim 9 in which the representation of the feature is defined by a tangent vector associated with the vertex, the tangent vector being along the smooth feature line, the feature representation generator step includes the step of determining the tangent vector e_(C)(q) in accordance with ${{e_{C}(q)} = {\sum\limits_{i = 0}^{K}{\left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(C)(s₁,s₂) is a vector of tangent vector weight values defined by ${l_{C} = {\lim\limits_{j\rightarrow\infty}\frac{l_{C}(J)}{\left. ||{l_{C}(J)} \right.||}}},$

where ${\left. ||v \right.|| = \sqrt{\sum\limits_{i}v_{i}^{2}}},$

that is, the Euclidean norm, and where ${{l_{C}(J)} = {\left( {0,1,0,\ldots \quad,{- 1},0,\ldots}\quad \right) \cdot {\prod\limits_{j = J}^{j_{D}}{S_{{s\quad c},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}}},$

where two non-zero components of the row vector on the right hand side are a “one” at position “one” in the row vector, and a “negative one” at position ${\frac{K}{2} + 1},$

and where S_(sc,T,K,L)(s₁(j),s₂(j)) corresponds to S_(sc,T,K,L) for sharpness parameters corresponding to the “j-th” level in the matrix product.
 122. A method as defined in claim 121 in which the weight vector generator step includes the step of generating the tangent vector weight vector 1 _(C) using a polynomial approximation methodology.
 123. A method as defmed in claim 122 in which the weight vector generator step includes the step of generating the approximation for the tangent vector weight vector 1 _(C) in accordance with the polynomial (l _(C))_(l) =b _(l0)(s ₁ −s ₂)+b _(l1)(s ₁ ² −s ₂ ²)+b _(l2)(s ₁ ³ −s ₂ ³)+b _(l3)(s ₁ ² s ₂ −s ₁ s ₂ ²) in the anti-symmetric case ( ), or the polynomial (l _(C))_(l) =b _(l0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₁ s ₂ +b _(l5) s ₂ ² +b _(l6) s ₁ ³ +b _(i7) s ₁ ² s ₂ +b _(l8) s ₁ s ₂ ² +b _(l9) s ₂ ³ in the non-symmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 124. A method as defmed in claim 123 in which weight vector generator step includes the step of selecting values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 125. A method as defined in claim 121 in which the weight vector generator step includes the step of generating an approximation for the tangent vector weight vector 1 _(C) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 126. A method as defined in claim 125 in which the weight vector generator step includes the step of performing the extrapolation approximation methodology such that M=3.
 127. A method as defined in claim 126 in which the weight vector generator step includes the step of generating the approximation for the tangent vector weight vector 1 _(C) in accordance with ${l_{C} \approx {\sum\limits_{J = 0}^{3}{b_{J}{l_{C}(J)}}}},$

where “J” is a predetermined integer and where l _(C)(J)(s ₁ ,s ₂)=d(K)^(J) v _(C) ·S _(sc,T,K,L,LP)(J)(s ₁ ,s ₂) where vector v_(C) is given by ${v_{C} = \left( {0,{\cos \frac{2{\pi (0)}}{K}},{\cos \frac{2{\pi (1)}}{K}},\ldots \quad,{\cos \frac{2{\pi \left( {K - 1} \right)}}{K}}} \right)},$

dilation factor d(K) is given by ${{d(K)} = \frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \frac{2\pi}{K}}}},{and}$ ${{{S_{{s\quad c},T,K,L,{L\quad P}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}{S_{{s\quad c},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,T,K,L,LP)(0)(s ₁ ,s ₂):=I _(K+1) where I_(K+1) is the “K+1” by “K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = \frac{131072}{120015}} \end{matrix}.$


128. A method as defined in claim 9 in which the representation of the feature is defined by a tangent vector associated with the vertex, the tangent vector being across the smooth feature line, the feature representation generator step includes the step of determining the tangent vector e_(C)(q) in accordance with ${{e_{s}(q)} = {\sum\limits_{i = 0}^{K}{\left( {l_{s}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(S)(s₁,s₂) is a vector of tangent vector weight values defined by ${l_{s} = {\lim\limits_{j\rightarrow\infty}\frac{l_{s}(J)}{\left. ||{l_{s}(J)} \right.||}}},$

where ${\left. ||v \right.|| = \sqrt{\sum\limits_{i}v_{i}^{2}}},$

that is, the Euclidean norm, where ${{l_{s}(J)} = {\left( {0,{\sin \frac{2{\pi (0)}}{K}},{\sin \frac{2{\pi (1)}}{K}},\ldots \quad,{\sin \frac{2{\pi \left( {K - 1} \right)}}{K}}} \right) \cdot {\prod\limits_{j = J}^{j_{D}}{S_{{sc},T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}}},$

where S_(sc,T,K,L)(s₁(j),s₂(j)) corresponds to S_(sc,T,K,L) for sharpness parameters corresponding to the “j-th” level in the matrix product.
 129. A method as defined in claim 128 in which the weight vector generator step includes the step of generating the tangent vector weight vector 1 _(C) using a polynomial approximation methodology.
 130. A method as defined in claim 129 in which the weight vector generator step includes the step of generating the approximation for the tangent vector weight vector 1 _(S) in accordance with the polynomial (l _(S))_(i) =b _(i0)(s ₁ −s ₂)+b _(i1)(s ₁ ² −s ₂ ²)+b _(l2)(s ₁ ³ −s ₂ ³)+b _(i3)(s ₁ ² s ₂ −s ₁ s ₂ ²) in the anti-symmetric case, or the polynomial (l _(S))_(i) =b _(i0) +b _(l1) s ₁ +b _(i2) s ₂ +b _(l3) s ₁ ² +b _(i4) s ₁ s ₂ +b _(i5) s ₂ ² +b _(l6) s ₁ ³ +b _(l7) s ₁ ² s ₂ +b _(i8) s ₁ s ₂ ² +b _(i9) s ₂ ³ in the non-symmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 131. A method as defined in claim 130 in which weight vector generator step includes the step of selecting values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices ij=0, . . . ,N-1.
 132. A method as defined in claim 127 in which the weight vector generator step includes the step of generating an approximation for the tangent vector weight vector 1 _(S) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 133. A method as defined in claim 132 in which the weight vector generator step includes the step of performing the extrapolation approximation methodology such that M=3.
 134. A method as defined in claim 133 in which the weight vector generator step includes the step of generating the approximation for the limit point weight vector weight vector in accordance with ${l_{S} \approx {\sum\limits_{J = 0}^{3}{b_{J}{l_{S}(J)}}}},$

where “J” is a predetermined integer and where l _(S)(J)(s ₁ ,s ₂)=d(K)^(J) v _(s) ·S _(sc,T,K,L,LP)(J)(s ₁ ,s ₂) where vector v_(S) is given by ${v_{s} = \left( {0,{\sin \frac{2{\pi (0)}}{K}},{\sin \frac{2{\pi (1)}}{K}},\ldots \quad,{\sin \frac{2{\pi \left( {K - 1} \right)}}{K}}} \right)},$

dilation factor d(K) is given by ${{d(K)} = \frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \frac{2\pi}{K}}}},{a\quad n\quad d}$ ${{{S_{{s\quad c},T,K,L,{L\quad P}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}{S_{{s\quad c},\quad T,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,T,K,L,LP)(0)(s ₁ ,s ₂):=I _(K+1) where I_(K+1) is the “K+1” by “K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = \frac{131072}{120015}} \end{matrix}.$


135. A method as defined in claim 108 in which the mesh comprises a quadrilateral mesh in which, at a selected level “j,” vertex v_(q)(0) is at position c^(j)(0) and neighboring points v_(q)(k), k=1, . . . ,2K are at respective positions c^(j)(k), and in which the weight vector generator step includes the step of making use of a parameterized subdivision rule S_(sc,Q,K,L) that relates the position c^(j+1)(0) of the vertex v_(q)(0) and positions c^(j+1)(k) of neighboring points v_(q)(k) at the next higher level “j+1” as follows c ^(j+1) =S _(sc,T,K,L) c ^(J) where subdivision rule S_(sc,Q,K,L) is given by $\left( {S_{{sc},Q,K,L}\left( {s_{1},s_{2}} \right)} \right)_{l,m} = \left\{ {\begin{matrix} {{\left( {1 - s_{3}} \right)\left( {1 - \frac{7}{4K}} \right)} + {\frac{3}{4}s_{3}}} & {\quad {{{{if}\quad l} = 0},{m = 0}}} \\ {\quad {{\left( {1 - s_{3}} \right)\left( \frac{3}{2K^{2}} \right)} + {\frac{1}{8}s_{3}}}} & {\quad {{{{if}\quad l} = 0},{m = {{1\quad {or}\quad L} + 1}}}} \\ {\quad {\left( {1 - s_{3}} \right)\left( \frac{3}{2K^{2}} \right)}} & {\quad {{{{if}\quad l} = 0},{m = 2},\ldots \quad,L}} \\ \quad & {{{{or}\quad l} = 0},{m = {L + 2}},\ldots \quad,K} \\ {\left( {1 - s_{3}} \right)\left( \frac{1}{4K^{2}} \right)} & {{{{if}\quad l} = 0},{m = {K + 1}},\ldots \quad,{2K}} \\ {\quad {{\frac{3}{8}\left( {1 - s_{2}} \right)} + {\frac{1}{2}s_{2}}}} & {\quad {{{{if}\quad l} = 1},{m = {0\quad {or}\quad 1}}}} \\ {\quad {\frac{1}{16}\left( {1 - s_{2}} \right)}} & {\quad {{{{if}\quad l} = {L + 1}},{m = 2},K,}} \\ \quad & {\quad {K + {1\quad {or}\quad 2K}}} \\ {\quad {{\frac{3}{8}\left( {1 - s_{1}} \right)} + {\frac{1}{2}s_{1}}}} & {\quad {{{{if}\quad l} = {L + 1}},{m = {{0\quad {or}\quad L} + 1}}}} \\ {\quad {\frac{1}{16}\left( {1 - s_{1}} \right)}} & {\quad {{{{if}\quad l} = {L + 1}},{m = L},{L + 2},}} \\ \quad & {\quad {K + {1\quad {or}\quad K} + L + 1}} \\ {\quad \frac{3}{8}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = 0}}} \\ \quad & {\quad {{{{or}\quad l} = {m = 2}},\ldots \quad,L}} \\ \quad & {\quad {{{{or}\quad l} = {m = {L + 2}}},{\ldots \quad K}}} \\ {\quad \frac{1}{16}} & {\quad {{{{if}\quad l} = 2},\ldots \quad,L,{m = {l - 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,L,{m = {l + 1}}}} \\ \quad & {\quad {{{{or}\quad l} = 2},\ldots \quad,L,{m = {K + l - 1}}}} \\ \quad & {{{{or}\quad l} = 2},\ldots \quad,L,{m = {K + l}}} \\ \quad & {\quad {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {l - 1}}}} \\ \quad & {{{{or}\quad l} = {L + 2}},\ldots \quad,{K - 1},{m = {l + 1}}} \\ \quad & {\quad {{{{or}\quad l} = K},{m = 1}}} \\ \quad & {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {K + l - 1}}} \\ \quad & {{{{or}\quad l} = {L + 2}},\ldots \quad,K,{m = {K + l}}} \\ \frac{1}{4} & {{{{if}\quad l} = {K + 1}},\ldots \quad,{{2K} - 1},{m = 0},} \\ \quad & {\quad {{l - K},{l - K + {1\quad {or}\quad l}}}} \\ \quad & {{{{or}\quad l} = {2K}},{m = 0},K,{1\quad {or}\quad 2K}} \\ {\quad 0} & {\quad {otherwise}} \end{matrix},} \right.$

where the smooth feature line is defined in connection with the edges between respective points v_(q)(1) and v_(q)(L+1) (L+1≦2K) and vertex v_(q)(0), s₁ is the parameter associated with the edge between point v_(q)(1) and vertex v_(q)(0), s₂ is the parameter associated with the edge between point v_(q)(L+1) and vertex ${v_{q}(0)},{{{and}\quad s_{3}} = {\frac{1}{2}{\left( {s_{1} + s_{2}} \right).}}}$


136. A method as defined in claim 135 in which the representation of the feature is defined by at least one limit point associated with the vertex, the feature representation generator step includes the step of determining a position σ(q) of the limit point in accordance with ${{\sigma (q)} = {\sum\limits_{i = 0}^{2K}{\left( {l_{L\quad P}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(LP)(s₁,s₂) is a vector of limit point weight values defined by l _(LP)(s ₁ ,s ₂)=v _(LP) ·S _(sc,Q,K,L,LP)(s ₁ ,s ₂) where ${{S_{{s\quad c},Q,K,L,{L\quad P}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}{S_{{s\quad c},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

where S_(sc,Q,K,L)(s₁(j),s₂(j)) corresponds to S_(sc,Q,K,L) for sharpness parameters corresponding to the “j-th” level in the matrix product, where S_(sc,Q,K,L,LP)(s₁,s₂) arguments s₁ and s₂ on the left-hand side refer to the sharpness parameters a definition level of the smooth feature line and the subscript “LP” refers to “Limit Point,” and $v_{L\quad P} = {\frac{1}{K\left( {K + 5} \right)}{\left( {K^{2},4,\ldots \quad,4,1,\ldots \quad,1} \right).}}$


137. A method as defined in claim 136 in which the weight vector generator step includes the step of generating an approximation for the limit point weight vector 1 _(LP) using a polynomial approximation methodology.
 138. A method as defined in claim 137 in which the weight vector generator step includes the step of generating the approximation for the limit point weight vector 1 _(LP) in accordance with the polynomial (l _(LP))_(l) ≈b _(l0) +b _(l1)(s ₁ +s ₂)+b _(l2)(s ₁ ² +s ₂ ²)+b _(l3) s ₁ s ₂ in a symmetric case, or the polynomial (l _(LP))_(l) ≈b _(l0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₁ s ₂ +b _(l5) s ₂ ² in an asymmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 139. A method as defined in claim 138 in which weight vector generator step includes the step of selecting values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 140. A method as defined in claim 134 in which the weight vector generator step includes the step of generating an approximation for the limit point weight vector 1 _(LP) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 141. A method as defined in claim 140 in which the weight vector generator step includes the step of performing the extrapolation approximation methodology such that M=3.
 142. A method as defined in claim 141 in which the weight vector generator step includes the step of generating the approxiation for the limit point weight vector weight vector in accordance with ${l_{L\quad P} \approx {\sum\limits_{J = 0}^{3}{b_{J}{l_{L\quad P}(J)}}}},$

where “J” is a predetermined integer and where (l _(LP)(J)(s ₁ ,s ₂))_(m)=(S _(sc,Q,K,L,LP)(J)(s ₁ ,s ₂))_(1,m) where ${{{S_{{s\quad c},Q,K,L,{L\quad P}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}{S_{{s\quad c},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,Q,K,L,LP)(0)(s ₁ ,s ₂):=I _(2K+1) where I_(2K+1) is the “2K+1” by “2K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = \frac{131072}{120015}} \end{matrix}.$


143. A method as defined in claim 135 in which the representation of the feature is defined by a tangent vector associated with the vertex, the tangent vector being along the smooth feature line, the feature representation generator step includes the step of determining the tangent vector e_(C)(q) in accordance with ${{e_{C}(q)} = {\sum\limits_{i = 0}^{2K}{\left( {l_{C}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}},$

where 1 _(C)(s₁,s₂) is a vector of tangent vector weight values defined by l _(C)(s ₁ ,s ₂)=d(K)^(K) v _(C) ·S _(sc,Q,K,L,LP)(s ₁(j),s ₂(j)) where ${{S_{{s\quad c},Q,K,L,{L\quad P}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}{S_{{s\quad c},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

and vector v_(C) is defined as $\left( v_{c} \right)_{i} = \left\{ {\begin{matrix} {\quad 0} & {\quad {{{if}\quad i} = 0}} \\ {\quad {A_{k}\cos \frac{2{\pi \left( {i - 1} \right)}}{K}}} & {\quad {{{{if}\quad i} = 1},\ldots \quad,K}} \\ {\quad {{\cos \frac{2\pi \quad \left( {i - K - 1} \right)}{K}} + {\cos \frac{2{\pi \left( {i - K} \right)}}{K}}}} & {\quad {{{{if}\quad i} = {K + 1}},\ldots \quad,{2K}}} \end{matrix},} \right.$

where ${A_{K} = {1 + {\cos \left( \frac{2\pi}{K} \right)} + {{\cos \left( \frac{\pi}{K} \right)}\sqrt{2\left( {9 + {\cos \frac{2\pi}{K}}} \right)}}}}\quad,$

and where dilation factor d(K) is given by ${d(K)} = {\frac{1}{\frac{A_{K}}{16} + \frac{1}{4}}.}$


144. A method as defined in claim 143 in which the weight vector generator step includes the step of generating the tangent vector weight vector 1 _(C) using a polynomial approximation methodology.
 145. A method as defined in claim 144 in which the weight vector generator step includes the step of generating the approximation for the tangent vector weight vector 1 _(C) in accordance with the polynomial (l _(C))_(l) ≈b _(l0)(s ₁ −s ₂)+b _(l1)(s ₁ ² −s ₂ ²)+b _(l2)(s ₁ ³ −s ₂ ³)+b _(l3)(s₁ ² s ₂ −s ₁ s ₂ ²) in the anti-symmetric case, or the polynomial (l _(C))_(l) ≈b _(l0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(i4) s ₁ s ₂ +b _(i5) s ₂ ² +b _(l6) s ₁ ³ +b _(i7) s ₁ ² s ₂ +b _(l8) s ₁ s ₂ ² +b _(l9) s ₂ ³ in the non-symmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 146. A method as defmed in claim 145 in which weight vector generator step includes the step of selecting values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos\left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos\left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 147. A method as defined in claim 143 in which the weight vector generator step includes the step of generating an approximation for the tangent vector weight vector 1 _(C) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 148. A method as defined in claim 147 in which the weight vector generator step includes the step of performing the extrapolation approximation methodology such that M-3.
 149. A method as defined in claim 148 in which the weight vector generator step includes the step of generating the approximation for the tangent vector weight vector 1 _(C) in accordance with ${l_{C} \approx {\sum\limits_{J = 0}^{3}{b_{J}{l_{C}(J)}}}}\quad,$

where “J” is a predetermined integer and where l _(C)(J)(s ₁ ,s ₂)=d(K)^(J) v _(C) ·S _(sc,Q,K,L,LP)(J)(s ₁ ,s ₂) where vector v_(C) is given by ${v_{C} = \left( {0,{\cos \frac{2\pi \quad (0)}{K}},{\cos \frac{2{\pi (1)}}{K}},\ldots \quad,{\cos \frac{2\pi \quad \left( {K - 1} \right)}{K}}} \right)}\quad,$

dilation factor d(K) is given by ${{d(K)} = \frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \frac{2\quad \pi}{K}}}}\quad,{and}$ ${{{S_{{sc},Q,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = J}^{j_{D}}{S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}}\quad,$

with S _(sc,Q,K,L,LP)(0)(s ₁ ,s ₂):=I _(2K+1) where I_(K+1) is the “2K+1” by “2K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = \frac{131072}{120015}} \end{matrix}.$


150. A method as defined in claim 135 in which the representation of the feature is defined by a tangent vector associated with the vertex, the tangent vector being across the smooth feature line, the feature representation generator step includes the step of determining the tangent vector e_(C)(q) in accordance with ${{e_{S}(q)} = {\sum\limits_{i = 0}^{2K}{\left( {l_{S}\left( {s_{1},s_{2}} \right)} \right)_{i}{c^{j}(i)}}}}\quad,$

where 1 _(C)(s₁,s₂) is a vector of tangent vector weight values defined by l _(S)(s ₁ ,s ₂)=d(K)^(K) v _(S) ·S _(sc,Q,K,L,LP)(s ₁(j),s ₂(j)) where ${{S_{{sc},Q,K,L,{LP}}\left( {s_{1},s_{2}} \right)} = {\prod\limits_{j = \infty}^{j_{D}}{S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}}\quad,$

and vector v_(C) is defined as $\left( v_{S} \right)_{i} = \left\{ {\begin{matrix} 0 & {{{if}\quad i} = 0} \\ {A_{k}\quad \sin \quad \frac{2\pi \left( {i - 1} \right)}{K}} & {{{{if}\quad i} = 1},\ldots \quad,K} \\ {{\sin \quad \frac{2\pi \left( {i - K - 1} \right)}{K}} + {\sin \quad \frac{2\pi \left( {i - K} \right)}{K}}} & {{{{if}\quad i} = {K + 1}},\ldots \quad,{2K}} \end{matrix},{{{where}A_{K}} = {1 + {\cos \left( \frac{2\pi}{K} \right)} + {{\cos \left( \frac{\pi}{K} \right)}\sqrt{2\left( {9 + {\cos \quad \frac{2\pi}{K}}} \right)}}}},} \right.$

and where dilation factor d(K) is given by ${d(K)} = {\frac{1}{\frac{A_{K}}{16} + \frac{1}{4}}.}$


151. A method as defined in claim 150 in which the weight vector generator step includes the step of generating the tangent vector weight vector 1 _(C) using a polynomial approximation methodology.
 152. A method as defined in claim 151 in which the weight vector generator step includes the step of generating the approximation for the tangent vector weight vector 1 _(S) in accordance with the polynomial (l _(S))_(l) =b _(l0)(s ₁ −s ₂)+b _(l1)(s ₁ ² −s ₂ ²)+b _(l2)(s ₁ ³ −s ₂ ³)+b _(l3)(s ₁ ² s ₂ −s ₁ s ₂ ²) in the anti-symmetric case, or the polynomial (l _(S))_(l) =b _(i0) +b _(l1) s ₁ +b _(l2) s ₂ +b _(l3) s ₁ ² +b _(l4) s ₁ s ₂ +b _(l5) s ₂ ² +b _(l6) s ₁ ³ +b _(l7) s ₁ ² s ₂ +b _(l8) s ₁ s ₂ ² +b _(l9) s ₂ ³ in the non-symmetric case, in which the coefficients b_(ij) are determined by a least squares methodology and the values of the parameters s₁ and s₂ are at selected values.
 153. A method as defined in claim 152 in which weight vector generator step includes the step of selecting values of s₁ and s₂ in accordance with ${\left( {s_{1},s_{2}} \right) = \left( {{\cos \left( \frac{\left( {i + \frac{1}{2}} \right)\pi}{N} \right)},{\cos \left( \frac{\left( {j + \frac{1}{2}} \right)\pi}{N} \right)}} \right)},$

where “N” is a selected integer, and indices i,j=0, . . . ,N-1.
 154. A method as defined in claim 150 in which the weight vector generator step includes the step of generating an approximation for the tangent vector weight vector 1 _(S) using an extrapolation approximation methodology in relation to an M-degree polynomial that interpolates the points {x=2⁻² ^(J) , y=l_(LP)(J)}, J=0, . . . ,M and then evaluating this polynomial by extrapolation at the point x=0.
 155. A method as defined in claim 154 in which the weight vector generator step includes the step of performing the extrapolation approximation methodology such that M=3.
 156. A method as defined in claim 155 in which the weight vector generator step includes the step of generating the approximation for the limit point weight vector weight vector in accordance with ${l_{S} \approx {\sum\limits_{J = 0}^{3}\quad {b_{J}{l_{S}(J)}}}},$

where “J” is a predetermined integer and where l _(S)(J)(s ₁ ,s ₂)=d(K)^(J) v _(S) ·S _(sc,Q,K,L,LP)(J)(s ₁ ,s ₂) where vector v_(S) is given by ${v_{S} = \left( {0,{\sin \quad \frac{2\pi (0)}{K}},{\sin \quad \frac{2\pi (1)}{K}},\ldots \quad,{\sin \quad \frac{2\pi \left( {K - 1} \right)}{K}}} \right)},$

dilation factor d(K) is given by ${{d(K)} = \frac{1}{\frac{3}{8} + {\frac{1}{4}\cos \quad \frac{2\pi}{K}}}},{and}$ ${{{S_{{sc},Q,K,L,{LP}}(J)}\left( {s_{1},s_{2}} \right)}:={\prod\limits_{j = J}^{0}\quad {S_{{sc},Q,K,L}\left( {{s_{1}(j)},{s_{2}(j)}} \right)}}},$

with S _(sc,Q,K,L,LP)(0)(s ₁ ,s ₂):=I _(2K+1) where I_(2K+1) is the “2K+1” by “2K+1” identity matrix, and where $\begin{matrix} {b_{0} = \frac{- 135}{120015}} \\ {b_{1} = \frac{1270}{120015}} \\ {b_{2} = \frac{- 12192}{120015}} \\ {b_{3} = \frac{131072}{120015}} \end{matrix}.$ 